【发布时间】:2014-01-09 16:55:40
【问题描述】:
我正在使用 Moq 的 MockRepository.Of 方法来模拟各种方法进行测试。当我通过 Where 子句将多个方法设置链接在一起时,它在模拟方法有返回时起作用。这显然是由于 Where 需要布尔表达式。你能用这个模式为没有返回变量的方法设置模拟吗?
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 返回(编译错误是不能将 'void' 转换为 'bool')。但是,我想通过模式进行设置。有什么建议吗?
【问题讨论】:
标签: c# unit-testing moq