【问题标题】:creating a custom matcher to check exceptions in a list创建自定义匹配器以检查列表中的异常
【发布时间】:2015-03-03 10:58:59
【问题描述】:

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

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

【问题讨论】:

标签: unit-testing junit hamcrest


【解决方案1】:

尝试使用来自shazamcrestsameBeanAs 匹配器。它能够通过将它们的字段序列化为 JSON 来比较两个对象。不需要 getter、公共字段或生产类上的任何注释。您需要做的只是创建预期对象并将其与实际对象进行比较:

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

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

我不确定在堆栈跟踪方面比较异常将如何工作,堆栈跟踪只是Throwable 中的一个字段。如果这是一个问题,您在使用 sameBeanAs 时可能不得不忽略特定字段。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-13
    相关资源
    最近更新 更多