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