31

オブジェクトをスパイしようとしていますが、コンストラクターが呼び出す前に、コンストラクターによって呼び出されるメソッドをスタブしたいと考えています。
私のクラスは次のようになります。

public class MyClass {
    public MyClass() {
         setup();
    }

    public void setup() {

    }
}

setup メソッドを呼び出してはなりません。では、このメソッドをスパイするにはどうすればよいでしょうか (そして何もしないようにセットアップをスタブ化します)。
メソッドをモックしても問題なく動作しますが、単体テストをしたいMyClassので、他の方法が必要になります。


何もしないようにセットアップ メソッドをスタブする必要がある理由:
私はレゴ ロボット (lejos) をプログラミングしていて、ロボットが動作するために必要なコードをセットアップに入れました。ただし、TinyVM (ロボットにインストールされている VM) の外部で呼び出すと、VM が適切に初期化されていないため (PC でテストが実行されるため)、Java がクラッシュします。単体テストの場合、セットアップは重要ではありません。
それらのいくつかは public static final 変数であるため、クラス/メソッドのセットアップ呼び出しをスタブできません。

4

4 に答える 4