请查看下面的代码,这是我的单元测试的一部分:
mockPersonFactory.Setup(m => m.Create()).Returns(PersonFactory());
public IPerson PersonFactory()
{
IPerson iPerson = new Person();
return iPerson;
}
应当多次调用
PersonFactory
(因为它包含在要测试的代码的循环中)。但是,不是每次在循环中创建新的Person
而是每次都重复使用同一个人对象。如何确保在每个循环上创建一个新的Person? 最佳答案
您的代码只是说“将PersonFactory()
的返回值用作Create()
的返回值”。相反,您需要指示它每次调用PersonFactory()
以获得返回值。使用接受lambda的Returns
重载:
mockPersonFactory.Setup(m => m.Create()).Returns(() => PersonFactory());
或者只是:
mockPersonFactory.Setup(m => m.Create()).Returns(PersonFactory);
关于c# - 如何确保在每个循环上创建一个新的Person?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44524079/