如何在不测试方法参数的情况下通过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)); 
+0

太棒了!谢谢!我有一个问题来找出AssertWasCalled的明确解释。 – pencilCake

logger.AssertWasCalled(T => t.LogNotInRange(NULL,NULL),选项=> options.IgnoreArguments);