我有一个与以下方法的接口:
bool ProcessActions(int actionTypeId, out List<int> ints, params object[] actionParameters);
现在,如何模拟此方法以使用nsubstitute返回值?以下是我的尝试:
this.actionOperationsMock.ProcessActions(Arg.Any<int>(), out List<int> _, Arg.Any<int>(), Arg.Any<int>(), Arg.Any<int>(), Arg.Any<DateTime>(), Arg.Any<DateTime>(), Arg.Any<string>()).Returns( x => { x[1] = null; return true; });
我只尝试用前两个参数来模拟它,但是在我的测试中,这个方法返回了false。
我建议使用returnsfranyargs,因为您要模拟每个参数,而params对象[]在这种情况下不必模拟,因为params允许0个参数。
mock.ProcessActions(Arg.Any<int>(), out Arg.Any<List<int>>()).ReturnsForAnyArgs( x => { x[1] = null; return true; }); var res = mock.ProcessActions(1, out var list, 1, 1, 1 , DateTime.Now, DateTime.Now.AddHours(2), "");