如何在不测试方法参数的情况下通过AssertWasCalled声明此方法调用?

时间:2011-09-02 14:35:09

标签: c# .net unit-testing rhino-mocks

我想检查是否调用了 LogNotInRange 方法,我想忽略测试调用它的方法参数;如果 LogNotInRange 被调用,我感兴趣。

正确的Rhino Mocks语法是什么(我给出了我在下面尝试的内容:)?

[TestMethod]
        public void MyTestMethod()
        {
            var logger = MockRepository.GenerateMock<ILogManager>();
            var teleporter = new Teleporter() {LogEventManager = logger};
            var message = new message() {IsDone = false};

            teleporter.Teleport(message);

            // How should I specify parameter1 and parameter2?
            logger.AssertWasCalled(t => t.LogNotInRange(parameter1, parameter2));
        }



public void LogNotInRange (object parameter1, object parameter2)
{
    // some logging logic
}

2 个答案:

答案 0 :(得分:2)

使用Arg<T>.Is.Anything

logger.AssertWasCalled(t => t.LogNotInRange(Arg<object>.Is.Anything, 
                                            Arg<object>.Is.Anything));

答案 1 :(得分:1)

logger.AssertWasCalled(t =&gt; t.LogNotInRange(null,null),options =&gt; options.IgnoreArguments);