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,全部清楚谢谢你们俩! –