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 提供了几种与之集成的方式。