我正在使用TestRestTemplate对我们的产品进行集成测试。
我有一个测试如下:
@Test
public void testDeviceQuery() {
ResponseEntity<Page> deviceInfoPage = template.getForEntity(base, Page.class);
// validation code here
}
此特定请求需要一个标头值。有人能告诉我如何向TestRestTemplate调用添加标题吗?
如果要对所有请求使用多个标头,可以添加以下内容
import org.apache.http.Header;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicHeader;
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
private void setTestRestTemplateHeaders() {
Header header = new BasicHeader("header", "value");
Header header2 = new BasicHeader("header2", "value2");
List<Header> headers = new ArrayList<Header>();
headers.add(header);
headers.add(header2);
CloseableHttpClient httpClient = HttpClients.custom().setDefaultHeaders(headers).build();
testRestTemplate.getRestTemplate().setRequestFactory(new HttpComponentsClientHttpRequestFactory(httpClient));
}
设置好标头后,您可以使用TestRestTemplate[TestRestTemplate]或RestTemplate[TestRestTemplate.getRestTemplate()]进行REST调用
如果希望使用TestRestTemplate的所有请求都包含某些标头,可以将以下内容添加到设置中:
testRestTemplate.getRestTemplate().setInterceptors(
Collections.singletonList((request, body, execution) -> {
request.getHeaders()
.add("header-name", "value");
return execution.execute(request, body);
}));
更新:从Spring Boot 1.4.0开始,TestRestTemplate不再扩展,但仍提供与RestTemplate相同的API。
TestRestTemboard
扩展
提供与RestTemboard
RestTemboard
相同的API,因此您可以使用相同的API发送请求。例如:
HttpHeaders headers = new HttpHeaders();
headers.add("your_header", "its_value");
template.exchange(base, HttpMethod.GET, new HttpEntity<>(headers), Page.class);
添加HTTP最简单的方法是什么。我的程序中的outboundGateway头? 我想做的是: 我首先对URL执行HTTP GET 然后我得到JSON 我提取session变量的值,并将其添加到下一个HTTP GET作为session头变量。 目前我有工作代码,但我想我可以做得更容易吗?我的实现 > 然后,该实现使用enrichHeaders方法将session变量添加到集成流消息头中 然后,该实现
11.2 集成测试的目标 Spring的集成测试支持有以下几点主要目标: 管理各个测试执行之间的 Spring IoC容器缓存 提供 测试配置实例的依赖注入 提供适合集成测试的 事务管理 提供辅助开发人员编写集成测试的 具备Spring特性的基础类 下面几节将解释每个目标并提供实现和配置详情的链接。 11.2.1 上下文管理和缓存 Spring TestContex框架对SpringApplica
15.2 集成测试的目标 Spring对集成测试的支持具有以下主要目标: 在测试执行期间管理Spring IoC容器的缓存。 为测试固件(test fixture)实例提供依赖注入。 提供适合集成测试的事务管理。 提供Spring指定的基类以帮助开发者编写集成测试。 接下来的几节将描述每一个目标,并提供到实现和配置细节的链接。 15.2.1 上下文管理及缓存 Spring TestContext框
英文原文:http://emberjs.com/guides/testing/integration/ 集成测试通常用来测试应用中得重要工作流。集成测试用来模拟用户交互和确认交互结果。 设置 为了对Ember应用进行集成测试,需要在测试框架中运行应用。首先需要将根元素(root element)设置为任意一个已知将存在的元素。如果根元素在测试运行时可见的话,这对测试驱动开发非常有用,带来的帮助非常
我想为我的应用程序创建一个测试目标 在添加测试目标之前,应用程序构建并运行finebr>。当我添加测试目标时,这是我尝试构建时显示的内容 null 导出路径=/applications/xcode.app/contents/developer/platforms/iphoneos.platform/developer/usr/bin:/usr/bin:/usr/sbin:/sbin“ 错误:无法打
主要内容:集成测试背后的原因,集成测试技术,集成测试方法,集成测试指南集成测试是单元测试后软件测试过程的第二个层次。在此测试中,软件的单元或单个组件在组中进行测试。集成测试级别的重点是在集成组件或单元之间交互时暴露缺陷。 单元测试使用模块进行测试,这些模块在集成测试中进行组合和测试。该软件使用许多软件模块开发,这些软件模块由不同的编码器或程序员编码。集成测试的目标是检查所有模块之间通信的正确性。 集成测试背后的原因 虽然软件应用程序的所有模块已经在单元测试中进行了测