gpt4 book ai didi

java - 如何将服务注入(inject)junit测试

转载 作者:行者123 更新时间:2023-12-01 17:43:21 25 4
gpt4 key购买 nike

我想了解将服务注入(inject) JUnit 测试的不同可能性/工具,以便我可以使用它而无需获取新实例(实际上我的服务是单例):

public class ServiceTest {

// Service to inject
private IMyService someService;

@Test
public void methodTest() {
// test body ...
assertTrue(someService.someServiceMethod());
}
}

最佳答案

您可以使用JMockit 模拟工具包。JMockit 是一个用于在测试中模拟对象的 Java 框架(JUnit/TestNG)

请参阅下面的示例

@RunWith(JMockit.class)
public class ServiceTest {

@Tested
private Service myService;

@Injectable
private AnotherService mockAnotherService;

@Test
public void methodTest() {
new Expectations() {{
mockAnotherService.someMethod("someValue"); result = true;
}};

assertTrue(myService.someMethod());
}
}

要测试的Service应该用@Tested注释。如果要测试的Service调用了其他服务,则需要使用@Injectable(mocks)注解

在上面的示例中,myService.someMethod 调用 AnotherService.someMethod 并传递字符串 someValue。 JMockit 运行 myService 的方法代码,当它到达 mockAnotherService 调用时,它使该调用返回 true

mockAnotherService.someMethod("someValue"); result = true;

阅读 JMockit 文档以获取更多信息。

关于java - 如何将服务注入(inject)junit测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58289471/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com