オブジェクトをスパイしようとしていますが、コンストラクターが呼び出す前に、コンストラクターによって呼び出されるメソッドをスタブしたいと考えています。
私のクラスは次のようになります。
public class MyClass {
public MyClass() {
setup();
}
public void setup() {
}
}
setup メソッドを呼び出してはなりません。では、このメソッドをスパイするにはどうすればよいでしょうか (そして何もしないようにセットアップをスタブ化します)。
メソッドをモックしても問題なく動作しますが、単体テストをしたいMyClass
ので、他の方法が必要になります。
何もしないようにセットアップ メソッドをスタブする必要がある理由:
私はレゴ ロボット (lejos) をプログラミングしていて、ロボットが動作するために必要なコードをセットアップに入れました。ただし、TinyVM (ロボットにインストールされている VM) の外部で呼び出すと、VM が適切に初期化されていないため (PC でテストが実行されるため)、Java がクラッシュします。単体テストの場合、セットアップは重要ではありません。
それらのいくつかは public static final 変数であるため、クラス/メソッドのセットアップ呼び出しをスタブできません。