は、私は次のコードを持っている:実際に渡されたクラスの型のクラスのみと一致する(MyClass.class)
verify(javaCompiler, times(1)).writeJavaAndCompile(any(ContractCompilationUnit.class), eq(outputDirectory));
verify(javaCompiler, times(1)).writeJavaAndCompile(any(ParamCompilationUnit.class), eq(outputDirectory));
をし、私のコードは次のようである:第一検証がjavaCompiler.writeJavaAndCompile()
から2回の呼び出しがあったことを見ているようだとして、
javaCompiler.writeJavaAndCompile(new ContractCompilationUnit(), outputDirectory);
javaCompiler.writeJavaAndCompile(new ParamCompilationUnit(), outputDirectory);
コードが失敗しています。タイプContractCompilationUnit
タイプのコールが1つしかないことに気づいていません。
この動作を回避するための標準的な手順は何ですか(独自のマッチャーを作成する必要はありません)。
をはい、間違いなく 'isA'を。しかし、 'times(1) 'を書いてはいけません。何も追加していないので、私の肌を這うことになります。 –
@DavidWallace:私はOPのオリジナルコードを単にコピーしていました:) Mockitoを使用していないので、おそらくその呼び出しを完全に削除できますか? –
ありがとうございます、@ JonSkeet。あなたはちょうど世界を若干保健所にしました。 –