0
擴展I有:模擬方法,通過另一個類
public class A extends B {
public ObjectC methodToTest() {
return getSomething();
}
}
/* this class is in other project and compiles in project I want test */
public class B {
public ObjectC getSomething() {
//some stuff calling external WS
}
}
和測試:
@RunWith(MockitoJUnitRunner.class)
public class ATest {
@Mock
B bMock;
@InjectMocks
A classTotest;
@Before
public void setup() {
MockitoAnnotations.initMocks(this);
}
@Test
public void getMethodToTestShouldReturnObjectC() {
Mockito.when(bMock.getSomething()).thenReturn(new ObjectC());
assertEquals(classTotest.methodToTest().getClass, ObjectC.class);
}
}
但是當我運行測試的Mockito是調用B(和它失敗,因爲呼叫的WS。 ..)
我讀了很多關於這方面的東西,但我無法解決它。
¿怎樣模擬getSomething()返回ObjectC?
但@InjectMocks並沒有在classToTest上注入bMock? –
@ZaídaDeIsidroNavarro沒有'@ InjectMocks'實際上會將mock注入到相同類型的'A'的字段中,這裏的類'A'沒有字段,所以沒有什麼可以注入 –
好吧,對不起,我錯過了@InjectMocks,全部清楚謝謝你們倆! –