如何在不测试方法参数的情况下断言AssertWasCalled的方法调用?

本文关键字:AssertWasCalled 断言 方法 调用 情况下 测试方法 参数 | 更新日期: 2023-09-27 18:07:26

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

什么是正确的Rhino mock语法(我给了我一直在尝试下面:)?

[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
}

如何在不测试方法参数的情况下断言AssertWasCalled的方法调用?

使用Arg<T>.Is.Anything:

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

logger。AssertWasCalled(t => t. lognotinrange (null, null), options => options. ignorearguments);