当前位置:  开发笔记 > 编程语言 > 正文

为Spring TestRestTemplate集成测试添加标头值

如何解决《为SpringTestRestTemplate集成测试添加标头值》经验,为你挑选了2个好方法。

我正在使用TestRestTemplate我们产品的集成测试.

我有一个看起来像这样的测试:

@Test
public void testDeviceQuery() {
    ResponseEntity deviceInfoPage = template.getForEntity(base, Page.class);

    // validation code here
}

此特定请求需要Header值.有人可以告诉我如何在TestRestTemplate电话中添加标题吗?



1> Ali Dehghani..:

更新:从Spring Boot 1.4.0开始,TestRestTemplate不再扩展RestTemplate但仍然提供相同的API RestTemplate.

TestRestTemplate 扩展 RestTemplate提供与API相同的API RestTemplate,因此您可以使用相同的API来发送请求.例如:

HttpHeaders headers = new HttpHeaders();
headers.add("your_header", "its_value");
template.exchange(base, HttpMethod.GET, new HttpEntity<>(headers), Page.class);


这解决了它,感谢一帮.需要注意的一点是`HttpHeaders`需要来自`org.springframework.http`包

2> DagR..:

如果您希望使用的所有请求TestRestTemplate都包含某些标头,则可以在设置中添加以下内容:

testRestTemplate.getRestTemplate().setInterceptors(
        Collections.singletonList((request, body, execution) -> {
            request.getHeaders()
                    .add("header-name", "value");
            return execution.execute(request, body);
        }));

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有