以下のメソッドを JMock でモックしようとしていますが、コンパイラ エラーが発生しています。
モックするクラス:
public interface myClass<T extends SomeClass>{
public void myMethod(T parameter);
public void myOtherMethod();
}
モックの期待値:
exactly(1).of(myClassMocked).myOtherMethod();
exactly(1).of(myClassMocked).myMethod( with(any(SomeClass.class)) );
コンパイル エラー:
型 myClass のメソッド myMethod(capture#6-of ?) は、引数 (SomeClass) には適用されません。
Object.class を他の互換性のあるクラスに切り替えて、マッチャーをいじってみました。
メソッドのシグネチャを単純に変更することはできません。それは簡単すぎるでしょう。
要するに、この特定のメソッド呼び出しを無視したいのですが、テスト メソッドの他のタスクに使用しているサービスであるため、MyClass モック全体を無視することはできません。
編集:
修正は
final myClass<?> myClassMocked= mockery.mock(myClass.class);
(Eclipseによって提案された一般的な仕様)
を変更することですfinal myClass<SomeClass> myClassMocked= mockery.mock(myClass.class);