如何使用 Substitute 参数在 NSubstitute 中 return 对象

How to return object in NSubstitute with Substitute parameters

我是 NSubstitute 的新手,之前曾与 Moq 合作过。 我想调用一个带有任何参数的函数和 return 我使用任何构造函数参数创建的对象,但我想设置的除外。

在 Moq 中我可以这样写:

new TestObject(It.IsAny<string>(), It.IsAny<bool>(), aValueIWantToControle)

我在 NSubstistute 中尝试过:

var mySubstitute = Substitute.For<IMySubstitute>();

mySubstitute.DoSomething(Arg.Any<bool>(), Arg.Any<string>())
    .Returns(new TestObject(Substitute.For<string>(), Substitute.For<bool>(), aValueIWantToControle));

如何在 NSubstitute 中创建这样的对象?

NSubstitute 对构造函数参数没有任何特殊支持。我认为类似以下的内容适用于这种情况:

var mySubstitute = Substitute.For<IMySubstitute>();

mySubstitute.DoSomething(Arg.Any<bool>(), Arg.Any<string>())
    .Returns(new TestObject(default(string), default(bool), aValueIWantToControle));