使用NSubstitute

时间:2019-01-31 08:55:18

标签: c# mocking nsubstitute

我有一个使用以下方法的接口:

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。

1 个答案:

答案 0 :(得分:1)

我建议您使用ReturnForAnyArgs,因为您要模拟每个参数,而params object []则不必模拟,因为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), "");