class 的模拟非静态方法
Mock non static method of a class
我正在尝试编写带有存根的测试,但模拟其中一种方法并没有按预期发生。
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();
}
}
我的测试class:
@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());
}
我想在 Class B,createConn
方法上创建一个测试,当我获得连接时,我想使用 mockito 接收“欢迎”而不是“你好”?
我找到了问题的解决方法。
PowerMockito.mockStatic(A.class);
PropertyManager mock = PowerMockito.mock(A.class);
given(A.getInstance()).willReturn(mock);
given(mock.getConn()).willReturn("Welcome");
assertEquals("Welcome", classB.createConn());
我正在尝试编写带有存根的测试,但模拟其中一种方法并没有按预期发生。
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();
}
}
我的测试class:
@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());
}
我想在 Class B,createConn
方法上创建一个测试,当我获得连接时,我想使用 mockito 接收“欢迎”而不是“你好”?
我找到了问题的解决方法。
PowerMockito.mockStatic(A.class);
PropertyManager mock = PowerMockito.mock(A.class);
given(A.getInstance()).willReturn(mock);
given(mock.getConn()).willReturn("Welcome");
assertEquals("Welcome", classB.createConn());