class 上的模拟方法由另一个 class 扩展
Mock method on class extended by another class
我有:
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() 模拟为 return ObjectC?
Mockito.when(bMock.getSomething()).thenReturn(new ObjectC());
此方法仅更改 bMock。它不会改变任何其他 class B(或 A)实例。
我有:
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() 模拟为 return ObjectC?
Mockito.when(bMock.getSomething()).thenReturn(new ObjectC());
此方法仅更改 bMock。它不会改变任何其他 class B(或 A)实例。