gpt4 book ai didi

unit-testing - 如何使用 StructureMap 2.5.3 自带的 MoqAutoMocker?

转载 作者:行者123 更新时间:2023-12-04 17:14:09 26 4
gpt4 key购买 nike

我正在尝试使用 StructureMap 附带的 MoqAutoMocker 类,但我找不到任何应该如何使用它的示例。我所要做的就是example at the StructureMap site that uses RhinoMocks .

我想要做的是使用 Get 方法获取对我的自动模拟/注入(inject)依赖项之一的引用。根据上面的链接,我应该能够做这样的事情

    // This retrieves the mock object for IMockedService
autoMocker.Get<IMockedService>().AssertWasCalled(s => s.Go());

请注意如何使用 AssertWasCalled,它指示 Get 函数返回对 RhinoMocks Mock 对象的引用?当我使用 MoqAutoMocker 时,同样的代码对我不起作用。

我有一个类 SignInController,它依赖于构造函数中的 ISecurityService。使用 MoqAutoMocker 就像示例中使用的 RhinoAutoMocker 一样,我想我应该能够做到这一点......
var autoMocker = new MoqAutoMocker<SignInController>();
autoMocker.Get<ISecurityService>().Setup(ss => ss.ValidateLogin
(It.IsAny<string>(), It.IsAny<string>())).Returns(true);

但问题是我永远无法访问 Setup 方法。在这种情况下,对 autoMocker.Get 的调用似乎返回了 ISecurityService 的实例,而不是 Mock

有没有人以这种方式成功使用 MoqAutoMocker?我只是做错了吗?

最佳答案

我最近遇到了一个类似的问题。似乎解决方案是做这样的事情:

var autoMocker = new MoqAutoMocker<SignInController>();
var mock = autoMocker.Get<ISecurityService>();
Mock.Get(mock).Setup(ss => ss.ValidateLogin
(It.IsAny<string>(), It.IsAny<string>())).Returns(true);

我还在我的博客上发布了一个更长的示例: Setting Expectations With StructureMap’s MoqAutoMocker .

关于unit-testing - 如何使用 StructureMap 2.5.3 自带的 MoqAutoMocker?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945089/

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