私はレガシー コード用の JUnit テストをいくつか作成しており、注釈を使用することの大ファンです。スパイされたオブジェクトへの宣言を作成し、後でインスタンス化できるかどうかを知りたいです。私が尋ねる理由は、null 以外のコンストラクタを持つクラスがあるためです。このコンストラクターの値は、テスト ケースのセットアップ後までわかりません。以下のコードは、私がやりたいことを示しています。
@RunWith(MockitoJUnitRunner.class)
public class ObjectUndertestTest {
@Spy private SomeClassToSpy someClassToSpy;
private Integer parameterOne;
private Integer parameterTwo;
@Before
public void setupTest() {
parameterOne = 1;
parameterTwo = 2;
someClassToSpy = new SomeClassToSpy(parameterOne, parameterTwo);
}
}
これを実行できる唯一の方法は、構文を組み合わせて、従来のスパイ (オブジェクトからモック) 表記を使用することです。あれは:
@RunWith(MockitoJUnitRunner.class)
public class ObjectUndertestTest {
private SomeClassToSpy someClassToSpy;
private Integer parameterOne;
private Integer parameterTwo;
@Before
public void setupTest() {
parameterOne = 1;
parameterTwo = 2;
someClassToSpy = new SomeClassToSpy(parameterOne, parameterTwo);
SomeClassToSpy spySomeClassToSpy spy(someClassToSpy);
}
}
または似たようなもの。これについて何か考えはありますか?