AssertJ 集成
AssertJ 集成建立在普通的 MockMvc 之上,但有以下几个不同之处:
-
无需使用静态导入,因为请求和断言都可以使用流畅的 API 来构建。
-
未解决的异常会得到一致的处理,因此您的测试不需要抛出(或捕获)
Exception。 -
默认情况下,无论处理是异步还是同步,断言的结果都是完整的。换句话说,不需要对异步请求进行特殊处理。
MockMvcTester 是 AssertJ 支持的入口点。它允许构建请求并返回一个与 AssertJ 兼容的结果,以便可以将其包装在标准的 assertThat() 方法中。
章节摘要
配置 MockMvcTester
MockMvcTester 可以通过两种方式进行设置。第一种是直接指向你想要测试的控制器,并通过编程方式配置 Spring MVC 基础设施。第二种是指向包含 Spring MVC 和控制器基础设施的 Spring 配置。
执行请求
本节展示了如何使用 MockMvcTester 执行请求,并如何与 AssertJ 集成以验证响应。
定义期望
断言的工作方式与任何 AssertJ 断言相同。该支持为 MvcTestResult 的各个部分提供了专用的断言对象,如下例所示:
MockMvc 集成
如果你想使用 AssertJ 支持,但已经投入了原始的 MockMvc API,MockMvcTester 提供了几种与之集成的方式。