Spring Boot集成测试中如何正确测试DELETE接口方法?
Spring Boot TestRestTemplate 测试DELETE接口方案
核心说明
TestRestTemplate 自带的delete()方法返回void,且默认将非2xx响应状态视为异常抛出,无法满足状态码校验需求;原有exchange()写法存在冗余参数,可以直接简化实现。
最终实现代码
@Test public void delete() { String url = "/domain/123"; // null作为请求体,Void.class匹配接口无返回值的定义 ResponseEntity<Void> resp = template.exchange(url, HttpMethod.DELETE, null, Void.class); // 校验响应状态码 assertEquals(HttpStatus.NO_CONTENT, resp.getStatusCode()); // 可选补充:校验服务层方法被正确调用,测试逻辑更严谨 verify(service).delete(123L); }
参数优化说明
- 请求体参数直接传
null即可:DELETE请求本身不需要携带请求体,不需要额外构造空字符串的HttpEntity - 返回类型用
Void.class:匹配控制器接口返回void的定义,不需要解析响应体为String,语义更准确
内容的提问来源于stack exchange,提问作者Volodya Lombrozo
相关产品推荐
相关产品推荐

