gpt4 book ai didi

c# - Moq.MockRepository.Of() 方法返回 void 时的用法

转载 作者:太空宇宙 更新时间:2023-11-03 16:01:44 31 4
gpt4 key购买 nike

我正在使用 Moq 的 MockRepository.Of<> 方法模拟各种方法进行测试。当我通过 Where 子句将多个方法设置链接在一起时,它会在模拟方法有返回值时起作用。这显然是由于 Where 需要一个 bool 表达式。您能否使用此模式为没有返回变量的方法设置模拟?

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')。但是,我想通过模式设置它。有什么建议吗?

最佳答案

您不需要为 AddAction 方法添加 Where,因为它具有 void 返回类型。如果您将 MockBehaviour 更改为 Loose,那么它会自动模拟该方法,但如果您要验证该方法,它将不起作用。

关于c# - Moq.MockRepository.Of() 方法返回 void 时的用法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21026448/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com