401中的Spring Boot集成测试结果

我们有一个Spring Boot" title="Spring Boot">Spring Boot 1.4 Web应用程序,它公开了REST api,并且我们想运行一些集成测试。

在我们的测试中,我们让Spring Boot在本地启动Web应用程序,然后对api进行一些调用。

如果我们仅运行Web应用程序本身并点击终点,我们将得到200/OK预期的响应。运行测试,但是,我们得到401/Unauthorized服务器响应。

我将在哪里查看导致授权错误的原因?

@RunWith(SpringRunner.class)

@SpringBootTest(classes = {Application.class}, webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)

public class DemoApplication3IT {

private final Logger log = LoggerFactory.getLogger(DemoApplication3IT.class);

@Autowired

private TestRestTemplate restTemplate;

@Test

public void getFunky() throws IOException {

ResponseEntity<String> response =

this.restTemplate.getForEntity("http://localhost:8080/api/funky", String.class);

log.info("TestRestTemplate response Code: " + response.getStatusCode());

assertThat(response.getStatusCode()).isEqualTo(HttpStatus.OK); // Expected :200, Actual :401

}

}

奇怪的是,使用浏览器访问端点可以正常工作,但是集成测试失败。

回答:

最终,问题在于在单元测试环境中 没有 禁用安全性。该解决方案将以下行添加到application.yml

management.security.enabled: false

management.health.db.enabled: false

security.basic.enabled: false

以上是 401中的Spring Boot集成测试结果 的全部内容, 来源链接: utcz.com/qa/408565.html

回到顶部