spring-boot - Spring MockMvc 和流式异步结果
问题描述
我正在测试一个流式异步端点,我用它来逐行生成非常大的文件(甚至超过 200MB)。
现在我想测试它们。但是我现在能够测试它们的唯一方法是
@Test
public void consumeStreamedResponse() throws Exception {
MvcResult asyncResult = mvc.perform(get("/api/data/stream?from=0&limit=10000000"))
.andExpect(request().asyncStarted())
.andReturn();
mvc.perform(asyncDispatch(asyncResult))
.andExpect(status().isOk())
.andDo(result -> {
String str = result.getResponse()
.getContentAsString();
System.out.println(str);
});
}
问题是,通过这种方式,所有响应都被转换为唯一的String
,而我想逐行使用响应作为InputStream
.
我怎样才能做到这一点?
解决方案
推荐阅读
- python - 使 SQLAlchemy 错误更加用户友好和详细
- css - -moz-available 高度在 Firefox 中不起作用
- mysql - 创建提供 mysql 数据库的用户联系表单
- google-sheets - 从 A 列获取 B 的同一行中的元素,索引取自 C
- c++ - 使用继承与通过 std::function 公开组合成员的方法
- rcpp - 将函数指针添加到 Parallel Worker
- node.js - 如何从回调中返回变量?
- apache-flink - 如何在 Mesos Flink 集群中实现 JobManager 高可用?
- c# - 将两个二维数组混合为 1 个二维数组
- swift - 使用 swift 类附加到字典