定义期望
断言与任何 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
的实现。