我正在使用moq为一个方法编写单元测试,该方法的参数由ref传递。我需要在调用方法后修改该参数的值。我正在尝试使用Callback for Moq设置,但它没有更新值。
myMock = new Mock<IMyObject>();
Foo foo = null;
myMock.Setup(x => x.GetResult(It.IsAny<string>(), ref foo))
.Returns("SUCCESS")
.Callback(() => { foo = new Foo ();});
我在这里看到了类似的问题但他们回答使用回调,但我总是把foo的值变为null。
答案 0 :(得分:0)
过去12小时我遇到了类似的问题,我实现结果的唯一方法是手动继承和模拟对象。
在您的情况下,您可以设置一个伪对象,该对象继承IMyObject并定义它的.GetResult行为以初始化一个新的Foo对象,然后返回一个&#34; SUCCESS&#34;。
然后,您可以使用NUnit api进行断言。