我正在使用Nunit测试和Rhino-Mocks进行代码单元测试。
我的代码如下所示;
_mockHandler.Expect(m => m.DoSomething(Arg<string>.Is.Anything, Arg<string>.Is.Anything))
.Return(myList["XXX"]);myList的内容正在从正在运行的线程更新。一旦上面的行执行myList["XXX"]的值为空。但是在从代码调用此方法时,myList["XXX"]正在具有一个值。
有没有办法配置,调用方法时参考实际值?
发布于 2015-07-05 05:28:05
在运行时而不是记录时间返回值的方法是使用WhenCalled或Do方法。
在您的案例中,Do似乎是正确的解决方案:(如果您想知道何时使用Do或WhenCalled read my answer)
_mockHandler.Expect(m => m.DoSomething(Arg<string>.Is.Anything,
Arg<string>.Is.Anything))
.Do(new Func<string,string,string>((s, s1) => myList["XXX"]));在上面的示例中,当您调用DoSomething时,(s, s1) => myList["XXX"])将执行,并且myList["XXX"]中的值将返回。
https://stackoverflow.com/questions/31198908
复制相似问题