0

PowerMockito/Mockito で、クラスの静的メソッドを 1 つだけモックしたい。

私はそれを「スパイ」しました。

関数のパラメーター値に応じて応答がカスタマイズされるため、doAnswer メソッドが本当に必要です。

さらに、私は次のようなことをしました:

doAnswer(...).when(class,methodname, anyString());

ここでの醜い問題 - スローされた例外 - は、次の理由によるものです。

  • 私のメソッドは、null/空の文字列パラメーターで呼び出されると例外をスローします
  • anyString メソッドは、私が望んでいないものを正確に返します: null または空の文字列
  • 注: argThat も null を返します。

    ここで何ができますか?:)

    ありがとうございました!

    スタックトレース:

    
    
        java.lang.NullPointerException: key can't be null
        at java.lang.System.checkKey(System.java:771)
        at java.lang.System.getProperty(System.java:647)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.powermock.reflect.internal.WhiteboxImpl.performMethodInvocation(WhiteboxImpl.java:2015)
        at org.powermock.reflect.internal.WhiteboxImpl.doInvokeMethod(WhiteboxImpl.java:893)
        at org.powermock.reflect.internal.WhiteboxImpl.invokeMethod(WhiteboxImpl.java:867)
        at org.powermock.reflect.Whitebox.invokeMethod(Whitebox.java:463)
        at org.powermock.api.mockito.internal.expectation.PowerMockitoStubberImpl.when(PowerMockitoStubberImpl.java:105)
    
    

    後で編集: メソッドとパラメーターを指定した場合、このタイプの「when」は、私が見たものよりも厳格です-anyString「a」の代わりに置くと、すべてがうまく機能します。この 'when' では、anyString() の結果と見なされますが、これは空であり、すべてを台無しにします....

    4

    0 に答える 0