我们正在为一个使用 Spring 自动装配注入依赖项的类编写 JUnit 测试,该依赖项是接口的某个实例。由于被测类从未显式实例化依赖项或将其传递给构造函数,因此 JMockit 似乎也没有义务实例化它。
到目前为止,我们一直在使用 SpringRunner 为我们加载 Spring 模拟依赖项,这很有效。我们不喜欢的两件事是 1)每次运行测试时都必须加载和初始化 Spring 框架,这并不十分快速,以及 2)我们被迫将所有模拟依赖项显式创建为真实类,这JMockit 有助于消除。
这是我们正在测试的一个简化示例:
public class UnitUnderTest {
@Autowired
ISomeInterface someInterface;
public void callInterfaceMethod() {
System.out.println( "UnitUnderTest.callInterfaceMethod calling someInterface.doSomething");
someInterface.doSomething();
}
}
所以,问题是,有没有办法让 JMockit 创建一个 mock someInterface
?