定义期望

断言与任何 AssertJ 断言的工作方式相同。该支持为 MvcTestResult 的各个部分提供了专用的断言对象,如以下示例所示: include-code::./HotelControllerTests[tag=get,indent=0] 如果请求失败,交换不会抛出异常。相反,您可以断言交换的结果已失败: include-code::./HotelControllerTests[tag=failure,indent=0] 请求也可能意外失败,即处理器抛出的异常未被处理并按原样抛出。您仍然可以使用 .hasFailed().failure(),但任何尝试访问结果一部分的操作都将抛出异常,因为交换尚未完成。

JSON 支持

MvcTestResult 的 AssertJ 支持通过 bodyJson() 提供 JSON 支持。

如果 JSONPath 可用,您可以在 JSON 文档上应用表达式。返回的值提供了便捷的方法来返回各种受支持的 JSON 数据类型的专用断言对象:

您还可以将原始内容转换为您的任何数据类型,只要消息转换器配置正确:

转换为目标 Class 提供了一个通用断言对象。对于更复杂的类型,您可能希望改用 AssertFactory,如果可能,它会返回一个专用断言类型:

JSONAssert 也受支持。响应正文可以与 Resource 或内容进行匹配。如果内容以 .json 结尾,我们会在类路径上查找与该名称匹配的文件:

如果您更喜欢使用其他库,您可以提供 JsonComparator 的实现。