testing - 默认情况下将 Moq CallBase 设置为 true

标签 testing moq abstract

在这里查看为什么我想在我的 Mock 对象上设置 CallBase: How to use moq to test a concrete method in an abstract class?

最好不要在我的每个模拟对象上都设置它。

有什么办法可以全局设置吗? 例如我可以将某些语法(例如 Moq.Settings.CallBaseDefault = true)放入我的 [TestSetup] 方法中吗?

最佳答案

Amol 建议的解决方案或多或少已经内置到 Moq 中。

如果您使用:

MockRepository factory =
        new MockRepository(MockBehavior.Loose) { CallBase = true, };

然后代码如下:

var mock = factory.Create<Concrete>();

将创建一个带有 CallBase true 的松散模拟。

(对于 Strict 模拟,将 CallBase property 设置为 true 没有意义。对于它们,做一个显式的 mock .Setup(x => x.MemberToUse).CallBase(); 为您想要的每个类成员(方法或属性)。)

关于testing - 默认情况下将 Moq CallBase 设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28995684/

相关文章:

java - 如何使用 @WebMvcTest 从上下文中排除包

c++ - 验证输出到 "Find the numbers between 1 and 1000 whose prime factors' 总和本身就是一个素数”来自 Allain 的 Jumping into C++ (ch7 #3)

c# - 使用 MStest 和最小起订量测试 TryUpdateModel()

c# - 如何对 CanExecute RoutedEventHandler 进行单元测试?

c# - 如何模拟嵌套的属性和对象及其功能?

java - 普通接口(interface)类和只有抽象方法的抽象类有什么区别吗?

java - 使用 Hibernate for ORM 的抽象/具体类的 MySQL 表

java - 通过更改最终静态变量来测试方法

c++ - 谷歌测试装置

java - 在不扩展它的类中使用抽象类方法