2009-01-29 15 views
16

我們使用Rhino Mocks來執行一些單元測試,並需要模擬兩個接口。只有一個接口在對象上實現,另一個接口是使用面向方面的方法動態實現的。是否有一種簡單的方法來動態組合這兩個接口,以便可以創建一個模擬併爲兩個接口存留方法?創建模擬時如何組合兩個界面?

回答

3

使用犀牛製品多個接口的模擬可以像這樣產生:

var mocker = new MockRepository(); 
var mock = mocker.CreateMultiMock<IPrimaryInterface>(typeof(IFoo), typeof(IBar)); 
mocker.ReplayAll(); 
+2

音符所使用的信息`ReplayAll`是[過時的犀牛嘲諷樣式](http://stackoverflow.com/questions/6078061/what-is-replayall-and-verifyall-in-rhinomocks) – Default 2013-04-15 12:34:30

11

這不是動態的,但肯定很簡單:創造出什麼也不做比實現其他兩個接口之外的其他檢測裝置內的接口:

internal interface ICombined : IFirstInterface, ISecondInterface {} 

然後嘲笑ICombined

14

使用犀牛製品

var mock = MockRepository.GenerateMock<IFirst, ISecond>(); 
mock.Stub(m => m.FirstProperty).PropertyBehavior(); 
((ISecond)mock).Stub(k=> k.SecondProperty).PropertyBehavior(); 

實測值和從http://www.richard-banks.org/2010/08/mocking-comparison-part-11-multiple.html

+3

如果其他絆倒t他注意到它是生成**模擬**而不是`GenerateStub`。存根版本沒有多個類型參數。 – Default 2013-04-15 12:29:35