我想检查某个特定方法是否被调用 N 次,首先使用 arg x1,然后使用 x2,然后使用 x3,等等,最后使用 arg xN。我知道可以这样做:Received.InOrder(() => { subst.MyMethod(x1); subst.MyMethod(x2); subst.MyMethod(x3); // ... subst.MyMethod(xN);});但是可以通过某种简单列出参数序列的方式来完成吗?像这样的东西(概念性的):int[] args = {x1, x2, x3, /*...*/ xN};subst.Received(N).MyMethod(Arg.Is(args));这是一个使用 InOrder 的实现,但我认为这是一种解决方法:int[] args = {x1, x2, x3, /*...*/ xN};Received.InOrder(() => { foreach (int i in args) subst.MyMethod(i);});
1 回答
郎朗坤
TA贡献1921条经验 获得超9个赞
NSubstitute API 没有执行此操作的方法。对我来说,
foreach
方法是最清晰的;它准确地显示了测试成功的预期。如果您经常需要,您可以编写一个方法来打包此逻辑,但是虽然它可能会使其更加简洁,但我认为这不会使其变得更清晰。
- 1 回答
- 0 关注
- 102 浏览
添加回答
举报
0/150
提交
取消