犀牛嘲笑使用AssertWasNotCalled

时间:2012-08-01 08:09:39

标签: c# unit-testing rhino-mocks

我制作了以下存根

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

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

我想跟随Assert

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

但我如何注意out参数?

2 个答案:

答案 0 :(得分: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调用是重要的。)

答案 1 :(得分:3)

模拟断言通常适用于模拟而不是存根。因此,您可以重写代码以进行以下设置

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

Assert 部分测试

进行验证
_Service.VerifyAllExpectations();