我希望模拟第一次返回0,然后在每次调用该方法时都返回1。问题是,如果该方法被调用了4次,我应该这样写:
mock.SetupSequence(x => x.GetNumber())
.Returns(0)
.Returns(1)
.Returns(1)
.Returns(1);
否则,该方法返回null。
有什么办法可以写出,第一次调用该方法之后,下次调用该方法时返回1?
谢谢
为SetupSequence拥有更多的“运算符(operator)”是否很好?如果您认为是,则可以投票:
http://moq.uservoice.com/forums/11304-general/suggestions/2973521-setupsequence-more-operators
最佳答案
那不是特别花哨,但我认为它会起作用:
var firstTime = true;
mock.Setup(x => x.GetNumber())
.Returns(()=>
{
if(!firstTime)
return 1;
firstTime = false;
return 0;
});