2012-08-01 162 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();