创建一个自定义匹配器来检查列表中的异常

creating a custom matcher to check exceptions in a list

我不确定如何创建自定义匹配器来验证存储在自定义异常中的信息。我需要一个自定义匹配器,因为异常存储在我正在处理的这个系统中的方式是将它们添加到列表中。现在我需要验证该列表中的错误和错误消息。

我很确定这已经完成了,我只是不确定在哪里可以找到它

尝试使用 shazamcrest 中的 sameBeanAs 匹配器。它能够通过将两个对象的字段序列化为 JSON 来比较两个对象。不需要吸气剂、public 字段或生产 class 上的任何注释。您需要做的就是创建预期的对象并将其与实际对象进行比较:

com.shazam.shazamcrest.MatcherAssert.assertThat(actualException, is(sameBeanAs(expectedException))

注意:使用来自 shazamcrest 而不是来自 hamcrest 的 MatcherAssert 很重要,否则 sameBeanAs 会给出错误的诊断结果。

我不确定在 Throwable 中的堆栈跟踪方面比较异常如何工作。如果这是一个问题,您可能必须在使用 sameBeanAs.

时忽略特定字段

如果您仍想编写自己的 hamcrest 匹配器,here 就是教程。