gpt4 book ai didi

moq - 当构造函数有参数时使用 Moq 模拟对象

转载 作者:行者123 更新时间:2023-12-03 05:11:29 29 4
gpt4 key购买 nike

我有一个对象,我正在尝试使用最小起订量来模拟。该对象的构造函数具有必需的参数:

public class CustomerSyncEngine {
public CustomerSyncEngine(ILoggingProvider loggingProvider,
ICrmProvider crmProvider,
ICacheProvider cacheProvider) { ... }
}

现在我尝试使用 moq 的 v3“setup”或 v4“Mock.Of”语法为该对象创建模拟,但无法弄清楚这一点...我尝试的所有内容都无法验证。这是到目前为止我所拥有的,但最后一行给了我一个真实的对象,而不是模拟的。我这样做的原因是因为我想验证 CustomerSyncEngine 上的方法是否正在被调用...

// setup
var mockCrm = Mock.Of<ICrmProvider>(x => x.GetPickLists() == crmPickLists);
var mockCache = Mock.Of<ICacheProvider>(x => x.GetPickLists() == cachePickLists);
var mockLogger = Mock.Of<ILoggingProvider>();

// need to mock the following, not create a real class like this...
var syncEngine = new CustomerSyncEngine(mockLogger, mockCrm, mockCache);

最佳答案

将最后一行更改为

var syncEngine = new Mock<CustomerSyncEngine>(mockLogger, mockCrm, mockCache).Object;

它应该可以工作

关于moq - 当构造函数有参数时使用 Moq 模拟对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7414704/

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