- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我注意到在 Spring Boot 测试中,MockHttpServletResponse
的 getContentLength()
与 javax.servlet.http.HttpServletResponse
相同,只是读取请求头"Content-Length"
来判断返回值,但是如果在我的测试中我没有设置header,它返回0,忽略是否有任何内容。
@Then("xxxxx returns {string} and status code {int}")
public void xxxxx_returns_and_status_code(String result, Integer code) throws Exception {
assertThat(this.results.getResponse().getContentType()).isEqualTo(MediaType.APPLICATION_JSON_UTF8_VALUE); // <-- pass
assertThat(this.results.getResponse().getStatus()).isEqualTo(code); // <-- pass
System.out.println(this.results.getResponse().getContentLength()); // 0???
System.out.println(this.results.getResponse().getContentAsString()); // the correct response
assertThat(this.results.getResponse().getContentLength()).isNotEqualTo(0); // not pass, confusing
getContentAsString()// pass
}
它是标准的,但不知何故令人困惑。
为了让测试通过,我必须做:
assertThat(this.results.getResponse().getContentAsString().length()).isNotEqualTo(0);
为什么要这样实现?
最佳答案
可能是这种情况,在类中执行的值 HttpHeaders.CONTENT_LENGTH 的整数转换会导致此行为。这是设置 contentLength 值的代码(启动并重置为 0):
else if (HttpHeaders.CONTENT_LENGTH.equalsIgnoreCase(name)) {
setContentLength(value instanceof Number ? ((Number) value).intValue() :
Integer.parseInt(value.toString()));
return true;
}
也许 getContentLengthLong 可以解决您的问题?
关于java - Spring Boot 测试 - MockHttpServletResponse getContentLength 返回 0 尽管有内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52005034/
我尝试在我的 Controller 中测试我的方法 addPerson(),但是当我执行测试时,我在 MockHttpServletResponse 中有一个空主体的状态 200。我想用 MockMv
我尝试使用 sprint-test 为 Servlet 编写单元测试模拟对象 我的 Maven 依赖项是: org.springframework spring-test 4.0.
我有以下测试代码,我正在测试可分页端点,其中列出了学生的所有条目。 @Autowired private MockMvc mockMvc; @MockBean private StudentR
I have written unit test cases for a spring rest controller but I'm getting blank response body. 下面是
我注意到在 Spring Boot 测试中,MockHttpServletResponse 的 getContentLength() 与 javax.servlet.http.HttpServletR
我正在使用 spring MockHttpServletResponse 和请求为 servlet 过滤器编写测试。创建 MockHttpServletResponse 对象时出现以下错误。 Caus
在编写 Spring Itegration 测试时,我遇到了 MockMvc 忽略了我的问题 .accept(MediaType.APPLICATION_JSON_UTF8) 设置,并返回带有难看变音
我是一名优秀的程序员,十分优秀!