次のコードがあります。
PowerMockito.mockStatic(DateUtils.class); //And this is the line which does the exception - notice it's a static function PowerMockito.when(DateUtils.isEqualByDateTime (any(Date.class),any(Date.class)).thenReturn(false);
クラスは次のように始まります。
@RunWith(PowerMockRunner.class)
@PrepareForTest({CM9DateUtils.class,DateUtils.class})
そして、私はorg.Mockito.exceptions.InvalidUseOfMatchersException を取得します......検証またはスタブの外で引数マッチャーを使用することはできません..... (エラーは失敗トレースに 2 回表示されますが、両方とも同じ行を指しています)
私のコードの他の場所では、whenの使用が完了し、適切に機能しています。また、コードをデバッグすると、any(Date.class) が null を返すことがわかりました。
私は他の人が有用だと思った次の解決策を試しましたが、私にとってはうまくいきません:
@After public void checkMockito() { Mockito.validateMockitoUsage(); }
またはまたは追加
@RunWith(MockitoJUnitRunner.class)
@RunWith(PowerMockRunner.class)
への変更
PowerMockito.when(new Boolean(DateUtils.isEqualByDateTime(any(Date.class), any(Date.class)))).thenReturn(false);
使用
anyObject()
(コンパイルされません)またはを使用して
notNull(Date.class)
(Date)notNull()
交換
when(........).thenReturn(false);
と
Boolean falseBool=new Boolean(false);
_
when(.......).thenReturn(falseBool);