我正在为遗留代码编写一些 JUnit 测试,并且我非常喜欢使用注释。我想知道是否可以为间谍对象创建声明并稍后实例化它。我问的原因是因为我有一个带有非空构造函数的类。在设置测试用例之前,此构造函数的值是未知的。下面的代码显示了我想做的事情:
@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);
}
}
我认为能够做到这一点的唯一方法是混合我的语法并使用传统的 spy(object to mock) 表示法。那是:
@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);
}
}
或类似的东西。对此有什么想法吗?