whenNew
如果我有两个构造函数 - 一个没有参数,一个有参数,则不起作用。在下面的代码摘录中,我需要第二次调用真正的构造函数,但我得到了一个NullPointerException
。
@RunWith(PowerMockRunner.class)
public class UtilTest {
@Test
public void test()throws Exception {
A a= new A();
a.setI(10);
whenNew(A.class).withNoArguments().thenReturn(a);
UtilTest test= new UtilTest();
test.testA();
}
private void testA(){
A a1= new A();
System.out.println(a1.getI());
A a2= new A(50);
System.out.println(a2.getI());
}
}
class A{
int i=1;
public A(){}
public A(int i){
this.i=i;
}
public void setI(int i){
this.i=i;
}
public int getI(){
return this.i;
}
}
输出 -
10
java.lang.NullPointerException