0

whenNew2 つのコンストラクター (1 つは引数なし、もう 1 つは引数あり) がある場合は機能しません。以下のコードの抜粋では、実際のコンストラクターをもう一度呼び出す必要がありますが、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
4

1 に答える 1