2017-09-15 60 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