2017-09-15 52 views
0

我一定会在我目前的项目中使用Rhinomocks。有没有一种方法使用Autofixture与Rhinomocks实现与使用AutoConfiguredMoqCustomization自定义将AutoFixture与Moq结合时的行为相同?是否有AutoConfiguredMoqCustomization的Rhinomock版本?

目前我必须在我的测试代码中做很多伪模拟设置,如下所示。在代码中,我并不真正关心我创建的位置。我只想GetAllLocations方法返回的位置随机列表,而不是空的:

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

回答

0

为AutoFixture各种胶图书馆不具备完整的功能奇偶校验。 AutoConfiguredMoqCustomization是仅部分移植到其他胶粘库的功能之一。 IIRC,它只适用于Moq和另一个动态模拟库。

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


原来的答复:

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

+0

我确实尝试了AutoRhinoMocks,但是我无法按照自己想要的方式使其工作。在上面的例子中,如果我使用AutoRhinoMockCustomization,GetAllLocations()的返回值为null。有没有办法让它返回一个默认值,比如3个项目,就像调用f.CreateMany()时一样?我不是在寻找一种解决这种情况的具体解决方案,而是寻求一种通用解决方案。 Moq我认为这是可能的,但我不确定RhinoMocks。 – Flodpanter

+0

@Flodpanter对不起,我误解了这个问题。看到我更新的答案。 –

+0

感谢您声明:-)我不是Rhinomocks的忠实粉丝,这只是增加了这一点。 – Flodpanter