如何在不测试方法参数的情况下通过AssertWasCalled声明此方法调用?
问题描述:
我想检查是否调用LogNotInRange方法,并且我想忽略它被调用的方法参数的测试;我只是有兴趣,如果LogNotInRange被调用或不。如何在不测试方法参数的情况下通过AssertWasCalled声明此方法调用?
它是什么正确的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
}
答
使用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.IgnoreArguments);
太棒了!谢谢!我有一个问题来找出AssertWasCalled的明确解释。 – pencilCake