问题描述
我试图用存根编写测试,但是模拟其中一种方法并没有按预期进行。
class A {
public static getInstance(){
return new A();
}
public String getConn(){
return "Hello";
}
}
class B {
public String createConn(){
A instance = A.getInstance();
return instance.getConn();
}
}
我的测试班:
@RunWith(powermockrunner.class)
@PrepareForTest(A.class)
public class TestClassB{
@Spy
B classB = new B();
@Test
public void testConn(){
powermockito.mockStatic(A.class);
given(A.getConn()).thenReturn("Welcome");
assertEquals("Welcome",classB.createConn());
}
我想在类B的createConn
方法上创建一个测试,当我获得连接时,我想使用Mockito接收“欢迎”而不是“ Hello”吗?
解决方法
我找到了解决问题的方法。
PowerMockito.mockStatic(A.class);
PropertyManager mock = PowerMockito.mock(A.class);
given(A.getInstance()).willReturn(mock);
given(mock.getConn()).willReturn("Welcome");
assertEquals("Welcome",classB.createConn());