spring boot测试无法注入TestRestTemplate和MockMvc [英] spring boot test unable to inject TestRestTemplate and MockMvc
本文介绍了spring boot测试无法注入TestRestTemplate和MockMvc的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在使用 Spring Boot 1.4.0.RELEASE
.我正在为我的控制器类编写测试.我收到以下异常.
I am using spring boot 1.4.0.RELEASE
. I am writing tests for my controller class. I get the following exception.
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.concur.cognos.authentication.service.ServiceControllerITTest': Unsatisfied dependency expressed through field 'restTemplate': No qualifying bean of type [org.springframework.boot.test.web.client.TestRestTemplate] found for dependency [org.springframework.boot.test.web.client.TestRestTemplate]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [org.springframework.boot.test.web.client.TestRestTemplate] found for dependency [org.springframework.boot.test.web.client.TestRestTemplate]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
这是我的测试课
public class ServiceControllerITTest extends ApplicationTests {
@Autowired
private TestRestTemplate restTemplate;
@Autowired
private MockMvc mvc;
@Test
public void exampleTest() throws Exception {
// test
}
}
ApplicationTests.java
@RunWith(SpringRunner.class)
@SpringBootTest
@WebAppConfiguration
//@DirtiesContext
public class ApplicationTests {
@Autowired
Environment env;
@Test
public void contextLoads() {
}
}
推荐答案
TestRestTemplate
仅在 @SpringBootTest
配置了 webEnvironment<时自动配置/code> 表示它启动 Web 容器并侦听 HTTP 请求.例如:
TestRestTemplate
is only auto-configured when @SpringBootTest
has been configured with a webEnvironment
that means it starts the web container and listens for HTTP requests. For example:
@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
这篇关于spring boot测试无法注入TestRestTemplate和MockMvc的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文