You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:09:00