spring-boot - 在 IT 测试中使用 RestTemplateBuilder 和 @ContextConfiguration

标签 spring-boot integration-testing resttemplate spring-test context-configuration

在 Spring 启动应用程序中使用带有 @ContextConfiguration 的 RestTemplateBuilder 时遇到问题(我尝试添加 @SpringBootTest、@RunWith(SpringRunner.class) 注释但没有任何运气)。

任何帮助表示赞赏。这是背景:

我已经注释了我的类(class),如下所示:

@ContextConfiguration(classes = {
    JsonNodeList.class,
    JsonNodeUtils.class,
    MyService.class,
    RestClient.class,
    RestTemplateBuilder.class}, loader = SpringBootContextLoader.class)
 public class StepsDefinition {

RestClient 类将 RestTemplateBuilder Autowiring 为:
 @Autowired
  public RestClient(final RestTemplateBuilder restTemplateBuilder) {
    this.restTemplate = configureRestTemplate(restTemplateBuilder);
  }

MyService 类 Autowiring RestClient。当我尝试使用 @ContextConfiguration 加载应用程序时与 SpringBootContextLoader ,我收到以下错误:
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'restTemplateBuilder': Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.boot.web.client.RestTemplateBuilder]: No default constructor found; nested exception is java.lang.NoSuchMethodException: org.springframework.boot.web.client.RestTemplateBuilder.<init>()

最佳答案

我通过使用 @SpringBootTest 解决了这个问题并添加 RestTemplateAutoConfiguration.class到类数组:

@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = { RestTemplateAutoConfiguration.class })
public class MyTest {
   // test methods
}

关于spring-boot - 在 IT 测试中使用 RestTemplateBuilder 和 @ContextConfiguration,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45697436/

相关文章:

java - 对象 ='auctionItem' 的验证失败

java - 在 java 中将对象列表转换为 JSON 数组 - Spring Boot api 测试

java - 如何在组件初始化之前在Spring Boot测试中加载h2数据

android - 使用集成测试时,Gradle 无法从 AndroidManifest.xml 中正确获取元数据

java - 无法使用 JAXB 解析响应

java - 通过 HTTP 保护 Spring Data RepositoryRestResource (CrudRepository),但不是在内部

java - 如何确保 @ExceptionHandler(Exception.class) 在 Spring Boot 中最后被调用?

ruby-on-rails - IntegrationTest 与 Mocha, stub HelperMethod (Ruby)

java - Spring Boot – 在 Rest 方法中添加缓存控制 header

java - 为什么我在使用 RestTemplate 获取数据时总是得到 403?