我正在测试一个具有公共设置程序但具有私有获取程序的属性。
我知道我可以验证两次用给定值调用设置器:

mockTable.VerifySet(m => m.CurrentIndex = 0, Times.Once());
mockTable.VerifySet(m => m.CurrentIndex = 1, Times.Once());


但我似乎无法做的是验证设置程序是否被正确调用了两次。

这可能吗?

谢谢

最佳答案

您可以使用Times.Exactly方法执行此操作:

mockTable.VerifySet(m => m.CurrentIndex = 0, Times.Exactly(N));


更新资料
第一次我不正确地表达了您的观点,直到您在评论中加以澄清为止。

您可以在测试中编写以下断言:

mockTable.VerifySet(m => m.CurrentIndex = 0, Times.Once);
mockTable.VerifySet(m => m.CurrentIndex = 1, Times.Once);
mockTable.VerifySet(m => m.CurrentIndex = It.IsNotIn(0, 1), Times.Never);


它正是在测试您想要的行为:只有将CurrentIndex wat正确设置两次:一次设置为0,另一次设置为1,并且不允许其他值/时间,测试才会通过。

关于c# - 最小订量:我可以验证一个二传手只被叫过N次吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34920922/

10-13 09:38