【问题标题】:Gradle build fails because the tests using RestTemplateGradle 构建失败,因为使用 RestTemplate 的测试
【发布时间】:2019-12-16 05:00:11
【问题描述】:

我有一个 Spring Boot 应用程序。它有一些端点,我想使用 RestTemplate 测试它们。测试工作正常.. 如果应用程序正在运行,我只需要运行测试类.. 并且所有测试都通过了。但实际上,如果我使用“gradle clean build”,所有测试都因为连接被拒绝而失败......显然导致应用程序试图调用自己......但它没有在任何端口上运行。

这是我的 @Test 之一,其中 BASE_URL 是 https://localhost:8080/

@Test
   public void receiveFiscalMessages_one_valid_request() {
       DEFAULT_REQUEST = RequestGenerator.getDefaultRequest_validRequestMessage();

       Response response = client.postMessages(BASE_URL + "test", DEFAULT_REQUEST).getBody();
       ...
   }

这是客户端:

public ResponseEntity<Response> postMessages(String url, String request) {
       HttpEntity<String> requestHttpEntity = new HttpEntity<>(request);

       return restTemplate.exchange(
               url,
               HttpMethod.POST,
               requestHttpEntity,
               new ParameterizedTypeReference<Response>() {
               });
   }

如果我以后不需要使用 'gradle clean build -x test' 最好。我希望看到我的测试也通过构建,而不仅仅是在我运行应用程序时,以及在我运行测试类之后。

【问题讨论】:

    标签: spring-boot gradle junit resttemplate endpoint


    【解决方案1】:

    有一种方法可以使用@SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)@LocalServerPort。参考link

    【讨论】:

    • 我仍然收到 ConnactionException :/
    • 在这种情况下我需要使用 TestRestTemplate 而不是 RestTemplate 吗? O.o
    猜你喜欢
    • 2020-03-10
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 2018-10-03
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多