w00*_*977 2 c# nunit unit-testing moq
请参阅下面的代码,这是我的单元测试的一部分:
mockPersonFactory.Setup(m => m.Create()).Returns(PersonFactory());
public IPerson PersonFactory()
{
IPerson iPerson = new Person();
return iPerson;
}
Run Code Online (Sandbox Code Playgroud)
PersonFactory应该多次调用(因为它包含在被测试代码的循环中).但是,不是Person每次在循环中创建新的,而是每次都重用同一个人对象.如何确保在每个循环上创建新Person?
您的代码只是说"使用返回值PersonFactory()作为返回值Create()." 相反,您需要指示它每次调用 PersonFactory()以获取返回值.使用Returns接受lambda 的重载:
mockPersonFactory.Setup(m => m.Create()).Returns(() => PersonFactory());
Run Code Online (Sandbox Code Playgroud)
或者只是:
mockPersonFactory.Setup(m => m.Create()).Returns(PersonFactory);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |