Java 类的模拟非静态方法
我试图编写一个带有存根的测试,但是模拟其中一个方法并没有像预期的那样发生Java 类的模拟非静态方法,java,mocking,mockito,powermock,Java,Mocking,Mockito,Powermock,我试图编写一个带有存根的测试,但是模拟其中一个方法并没有像预期的那样发生 class A { public static getInstance(){ return new A(); } public String getConn(){ return "Hello"; } } class B { public String createConn(){ A instance = A.getInstance(); return instance.get
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接收“Welcome”?我找到了问题的解决方案
PowerMockito.mockStatic(A.class);
PropertyManager mock = PowerMockito.mock(A.class);
given(A.getInstance()).willReturn(mock);
given(mock.getConn()).willReturn("Welcome");
assertEquals("Welcome", classB.createConn());
你能告诉我们你试过什么吗?
@RunWith(PowerMockRunner.class)@PrepareForTest(A.class)公共类TestClassB{@Spy B classB=new B();@Test public void testConn(){}PowerMockito.mockStatic(A.class);give(A.getConn())。然后返回(“欢迎”);assertEquals(“欢迎”,classB.createConn();}