2
我使用Moq的MockRepository.Of <>方法来模拟各种方法来测试。当我通过Where子句将多个方法设置链接在一起时,它会在模拟方法返回时起作用。这显然是由于Where需要布尔表达式。你可以使用这种模式为没有返回变量的方法设置模拟吗?Moq.MockRepository.Of()使用方法有void时返回
var mockRepository = new MockRepository(MockBehavior.Strict);
var debitCardBinManager = mockRepository.Of<IDebitCardBinManager>()
.Where(mgr => mgr.GetEffectiveDateBuffer() == 35)
.Where(mgr => mgr.AddAction(It.IsAny<DateTime>()))
.First();
从这个例子中可以设置GetEffectiveDateBuffer方法,因为它会返回一个整数。然而,AddAction不能,因为它有一个无效返回(编译错误是不能将'void'转换为'bool')。然而我想要通过模式来设置它。有什么建议么?
谢谢。我确实需要严格的行为并验证该方法。所以看起来我必须使用MockRepository.Create方法并为每个方法调用Setup。 – rmunson