Foo
のMockUp
のサンプルを考えてみてください。は、コンストラクタ内でBar
を傍受した後、Bar
としてtoString()
を実装しています。JMockit MockUpのmock toString()を使用できますか?
public class FooStub extends MockUp<Foo> {
private Bar bar;
@Mock
public void $init(Bar bar) {
this.bar = bar;
}
@Mock
public String toString() {
return bar.toString();
}
}
Foo
た場合は、すべてが正常に動作toString()
オーバーライドするために発生します。しかしそれ以外の場合は、IllegalArgumentException
:「次のモックでは実際のメソッドと一致しません」と表示されます。私はここから、JMockitは基底クラスを調べていないので、模擬する方法はtoString()
ではないことを理解しています。
私はFooクラスを変更できないとします(現実には、議論のためだけですが)クラスのためにtoString()
を模擬する方法はありますか?
明確にするには、このクラスのすべてのインスタンスを模擬したいと思います。ただ1つのインスタンス(簡単な解決策はありません。MockUp
は不要です)。
[Jmockit:net.android.UriクラスのtoStringメソッドを模倣できない](https://stackoverflow.com/questions/41561351/jmockit-cant-mock-method-tostring-of-net-アンドロイド - ウリ - クラス) – Jotunacorn