2012-06-19 118 views
1

有沒有一種簡單的方法來模擬這一呼籲:嘲笑鏈接的方法簡單的方法調用EasyMock的

objectA.getB().getC(); 

現在我做到這一點的方法是:

A mockA = EasyMock.createMock(A.class); 
B mockB = EasyMock.createMock(B.class); 
C mockC = EasyMock.createMock(C.class); 

expect(mockA.getB()).andReturn(mockB); 
expect(mockB.getC()).andReturn(mockC); 

這是一個有點因爲我所關心的只是獲得mockC。有沒有更簡單的方法來做到這一點?

回答

0

不,不存在 - 如果您想在您的測試中使用mock替換ABC,則需要三個模擬對象。

另一種方法是使用真實的AB類,並且只能用模擬對象替換C。然後你的單元測試將測試

  1. 包含objectA.getB().getC()
  2. A
  3. B

爲 「單位」 在一起的類。這是否合理,取決於具體情況。

0

我知道這個問題是關於EasyMock,但我不能只坐在我的手上,不能告訴你關於Mockito。 在Mockito中,你想要做的嘲笑相當簡單。

A mockA = Mockito.mock(A.class, RETURNS_DEEP_STUBS); 
C mockC = Mockito.mock(C.class); 
Mockito.when(mockA.getB().getC()).thenReturn(mockC); 

注意的Mockito開始作爲增強EasyMock的,你可以閱讀更多關於它在這裏:https://code.google.com/p/mockito/wiki/MockitoVSEasyMock