我们正在为一个使用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();
}
}
Run Code Online (Sandbox Code Playgroud)
所以,问题是,有没有办法让JMockit创建一个模拟someInterface?