2012-08-01 92 views
4

使用我提出以下存根犀牛嘲笑的AssertWasNotCalled

_Service.Stub(s => s.Login(Arg<string>.Is.Anything, Arg<string>.Is.Anything, Arg<int>.Is.Anything, out ggg)).OutRef(55); 

的最后一个参数是int类型的out参数。

我要让以下断言

_Service.AssertWasNotCalled(s => s.Login(Arg<string>.Is.Anything, Arg<string>.Is.Anything,Arg<int>.Is.Anything , ???????)); 

但我怎么在这里指出out参数?

回答

6

“简单地” 使用:

_Service.AssertWasNotCalled(s => s.Login(
    Arg<string>.Is.Anything, 
    Arg<string>.Is.Anything, 
    Arg<int>.Is.Anything , 
    out Arg<int>.Out(10).Dummy 
)); 

传递给Out方法的值是不相关的(Dummy呼叫是重要的。)。

3

模拟断言通常应用于嘲笑而不是存根。所以,你可以重写代码有以下设置

_Service.Expect(s => s.Login(Arg<string>.Is.Anything, Arg<string>.Is.Anything, Arg<int>.Is.Anything, out ggg)).OutRef(55).Repeat.Never(); 

而在断言测试的一部分MKE验证

_Service.VerifyAllExpectations();