我正在使用FakeItEasy来检查对属性的公共setter方法的调用是否已被调用。在C中获取属性设置器的方法名称#
该属性称为Description
,而且目前我正在测试它像这样:
A.CallTo(model)
.Where(x => x.Method.Name.Equals("set_Description"))
.WithAnyArguments()
.MustHaveHappened();
这个工作在功能上,使用魔法字符串方法名,不过缺点是,如果我重构该属性的名称,测试将失败,我将不得不在所有测试中手动更改字符串。
理想情况下,我想知道的方式在这片伪做它像:
var setterName = model.GetType()
.SelectProperty(x => x.Description)
.GetSetterName();
A.CallTo(model)
.Where(x => x.Method.Name.Equals(setterName))
.WithAnyArguments()
.MustHaveHappened();
这样,如果我用鼠标右键单击重构Description
属性,测试将不再需要要被更新。我怎样才能做到这一点?
顺便说一句,如果你这么倾向,你可以在这里省略'WithAnyArguments'。 –
这是为什么@BlairConrad?如果我没有具体声明约束条件,是否带有'WithAnyArguments'? –
这正是为什么。嗯。我不能把@JamesMonger放在这里。看起来在一开始。啊。因为“邮件所有者将永远被通知”。你学到的东西。 –