我对我的 spring boot 应用程序进行了 HTTPClient 测试。如果对服务器的 POST 请求是 2048 字节或以上的字符串,我有一个类会抛出异常。
@Component
public class ApplicationRequestSizeLimitFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(HttpServletRequest request,
HttpServletResponse response, FilterChain filterChain)
throws ServletException, IOException {
System.out.println(request.getContentLength());
if (request.getContentLengthLong() >= 2048) {
throw new IOException("Request content exceeded limit of 2048 bytes");
}
filterChain.doFilter(request, response);
}
}
我为它创建了一个单元测试,但我不确定如何编写断言语句来检查它是否无法发布请求。
到目前为止,我的测试课上有这个
@Test
public void testSize() throws ClientProtocolException, IOException {
Random r = new Random(123);
long start = System.currentTimeMillis();
String s = "";
for (int i = 0; i < 65536; i++)
s += r.nextInt(2);
String result = Request.Post(mockAddress)
.connectTimeout(2000)
.socketTimeout(2000)
.bodyString(s, ContentType.TEXT_PLAIN)
.execute().returnContent().asString();
}
该测试失败了,这正是我想要的,但我想创建一个断言以使其通过(断言由于超过字节限制而导致 http 响应失败)。
子衿沉夜
慕无忌1623718
暮色呼如
宝慕林4294392
相关分类