java如何将服务注入junit测试
我想知道将服务注入JUnit测试的不同可能性/工具,这样我就可以使用它而无需获得新实例(事实上,我的服务是单例的):
public class ServiceTest {
// Service to inject
private IMyService someService;
@Test
public void methodTest() {
// test body ...
assertTrue(someService.someServiceMethod());
}
}
# 1 楼答案
你可以使用JMockit 模拟工具包。 JMockit是一个Java框架,用于在测试中模拟对象(JUnit/TestNG)
请参见下面的示例
要测试的服务应该用@tested注释。 如果要测试的服务调用其他服务,则应使用@Injectable(mocks)注释这些服务
在上面的例子中,myService。someMethod调用另一个服务。someMethod并传递字符串someValue。JMockit运行myService的方法代码,当它到达mockAnotherService调用时,它会使该调用返回true
有关更多信息,请阅读JMockit文档
# 2 楼答案
您可以使用依赖注入将Mockito mock插入到Springbean中进行单元测试
看这个:https://www.baeldung.com/injecting-mocks-in-spring和https://www.baeldung.com/java-spring-mockito-mock-mockbean