如果你有 Spring Boot 服务,如何测试它?
您可以编写联合测试,但这不起作用:
public class myServicetest() {
@Autowired
private MyService myservice;
@Test
public void myTest() {
myService.myMethod()
}
我猜测当您运行实际应用程序时,spring 将执行所有 @Autowired 注入。 我猜junit对spring一无所知。 这是否意味着您无法测试 Spring 服务(不是模拟版本)?
我也尝试过这个:
@Test
public void myTest() {
MyService myService = new MyServiceImpl();
myService.myMethod()
}
但这也不起作用,大概是因为MyService也有几次注入,并且使用了feign。
使用junit来测试实际的服务代码是错误的策略吗? 还有哪些其他选择? 可能是:
您必须在测试类中使用@SpringBootTest注释。更多信息请参见此处https://spring.io/guides/gs/testing-web