私はこの抽象クラスを持っています:
public abstract class Accessor<T extends Id, U extends Value>
{
public U find(T id)
{
// let's say
return getHelper().find(id);
}
}
そして実装:
public FooAccessor extends Accessor<FooId,Foo>
{
public Helper getHelper
{
// ...
return helper;
}
}
そして、FooAccessor.find への呼び出しをモックしたいと思います。これ:
@MockClass(realClass=FooAccessor.class)
static class MockedFooAccessor
{
public Foo find (FooId id)
{
return new Foo("mocked!");
}
}
このエラーで失敗します:
java.lang.IllegalArgumentException: Matching real methods not found for the following mocks of MockedFooAccessor:
Foo find (FooId)
理由は理解できますが、他にどうすればよいかわかりません。
注: はい、getHelper メソッドをモックして、必要なものを取得できます。しかし、これは JMockit とこの特定のケースについて学ぶべき問題です。