0

jMockIt を使用して、継承された最終メソッドを独自の実装に置き換える方法を見つけようとしています。

私が次のものを持っているとしましょう:

public class Base {
  ...
  public final int getX() {...}
}

public class Derived extends Base {
}

たとえば、常に 10 を返すように getX() を再定義する方法はありますか?

私はこれに沿って何かをやってみました:

new Base() {
    @Mock
    public int getX() {
        return 10;
    }
};

Derived d= new Derived();

System.out.println(d.getX());

これにより、jMockIt が int getX() に一致するメソッドを見つけられないという実行時例外が発生します。

このスレッドに出くわしました: http://groups.google.com/group/jmockit-users/browse_thread/thread/27a282ff2bd4ad96

しかし、そこで提供されている解決策はよくわかりません。

助けてくれる人はいますか?

4

1 に答える 1

1

解決策が見つかりました...基本クラスをモックする必要があり、派生インスタンスも更新されたようです:

...
new MockUp<Base>() {
    @Mock int getX() { return 10;}

};
Derived d = new Derived();
System.out.println(plot.getWidth());  // prints 10
...
于 2011-02-15T05:50:19.087 に答える