繁体   English   中英

如何检查NSubstitute模拟中使用的参数

[英]How to check the parameters that were used in an NSubstitute mock

我知道如何断言在模拟接口上对方法的调用是使用特定参数或任何参数完成的。

但是,我想存储用于调用该函数的参数,并在该参数上运行另一个断言,但是我找不到任何方法可以做到这一点。

如何存储在对模拟方法的调用中使用的参数的值?

您可以通过Arg.Do捕获参数,如使用参数执行操作中所述:

var firstArgsBeingMultiplied = new List<int>(); 
calculator.Multiply(Arg.Do<int>(x => firstArgsBeingMultiplied.Add(x)), 10);

calculator.Multiply(2, 10);
calculator.Multiply(5, 10);
calculator.Multiply(7, 4567); //Will not match our Arg.Do as second arg is not 10

Assert.AreEqual(firstArgsBeingMultiplied, new[] { 2, 5 });

还可以从.ReturnsWhen..Do回调中访问和存储参数。

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM