在这里查看为什么我想在我的 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/