【问题标题】:Is there a Rhinomock version of AutoConfiguredMoqCustomization?是否有 Rhinomock 版本的 AutoConfiguredMoqCustomization?
【发布时间】:2017-09-15 12:43:06
【问题描述】:

我一定会在我当前的项目中使用 Rhinomocks。有没有一种方法可以设置使用 Autofixture 和 Rhinomocks 来实现与使用 AutoConfiguredMoqCustomization 自定义将 AutoFixture 与 Moq 组合时相同的行为?

目前我必须在我的测试代码中进行很多虚拟模拟设置,如下所示。在代码中,我并不真正关心我创建的位置。我只希望 GetAllLocations 方法返回一个随机的位置列表而不是 null:

var f = new Fixture();
        var masterDataProvider = MockRepository.GenerateStub<IMasterDataProvider>();
        masterDataProvider.Stub(x => x.GetAllLocations()).Return(f.CreateMany<Location>());
        f.Inject(masterDataProvider);

【问题讨论】:

    标签: rhino-mocks autofixture


    【解决方案1】:

    AutoFixture 的各种 Glue 库没有完整的功能对等。 AutoConfiguredMoqCustomization 是仅部分移植到其他 Glue 库的功能之一。 IIRC,它仅适用于 Moq 和另一个动态模拟库。

    所以简短的回答是,此功能不适用于 Rhino Mocks。


    原答案:

    是的,您可以使用AutoFixture.AutoRhinoMocks 代替AutoFixture.AutoMoq。它的工作方式相同,但某些类型名称不同 - 例如,您应该使用的 ICustomization 称为 AutoRhinoMockCustomization

    【讨论】:

    • 我确实尝试过 AutoRhinoMocks,但我无法让它以我想要的方式工作。在上面的示例中,如果我使用 AutoRhinoMockCustomization,则 GetAllLocations() 的返回值为 null。有没有办法让它返回一个默认值,比如 3 个项目,就像调用 f.CreateMany() 时一样?我不是在寻找解决这种情况的特定解决方案,而是寻找通用解决方案。使用 Moq 我认为这是可能的,但我不确定 RhinoMocks。
    • @Flodpanter 抱歉,我误解了这个问题。请参阅我的更新答案。
    • 感谢您说 :-) 我不是 Rhinomocks 的忠实粉丝,这只是补充。
    猜你喜欢
    • 2011-10-18
    • 2011-11-05
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多