我正在寻找一种模拟方法的方法,以便在多次调用时结果是不同的。更具体地说,我要模拟的是方法,以便第三次调用该方法时,我想针对该结果进行断言。
此语法不正确,但是模拟了我想要完成的工作:
var foo = Fixture.Freeze<IFoo>();
foo.Exists(Arg.Any<object>()).Returns("firstcall").SecondCall("secondcall").ThirdCall("thirdcall");
您可以在AutoFixture中执行此操作吗?
编辑:正如马克所指出的,这是一个与NSubstitute有关的问题,而不是与AutoFixture本身有关。我已经更新了标题。
我在提交问题之前已经找到了答案,所以我将答案发布在这里:
Fixture.Freeze<IFoo>()
.Exists(Arg.Any<object>())
.Returns("default", "firstcall", "secondcall", "thirdcall");
现在,当Exists()
被称为三次,反应会"firstcall"
那么"secondcall"
那么"thirdcall"
。此后的任何电话都会收到"default"
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句