【问题标题】:How to test an .equals() method using JUnit and Hamcrest如何使用 JUnit 和 Hamcrest 测试 .equals() 方法
【发布时间】:2013-07-11 22:24:48
【问题描述】:

我有一个类 List(编辑:我自己写的),使用 List.equals 方法,所以我想运行类似

List list1 = new List();
List list2 = new List();
assertTrue(list1.equals(list2));

所以使用匹配器和 assertThat,我想也许

assertThat(list1.equals(list2), is(true));

但这变得非常愚蠢......编辑:也许我可以编写自己的匹配器

有没有更好的方法来检查我的 equals 方法是否正常工作?

这是 JUnit4.5

【问题讨论】:

    标签: java junit4 hamcrest


    【解决方案1】:
    import static org.hamcrest.Matchers.equalTo;
    import static org.hamcrest.MatcherAssert.assertThat;    
    
    ...
    
    assertThat(list1, equalTo(list2));
    

    【讨论】:

    • 这就是我需要的,它会自动调用 .equals 方法,我没有意识到这是一个选项。
    • is 匹配器也是equalTo 的同义词。
    【解决方案2】:

    assertEquals(list1, list2) 是最直接的方式。

    【讨论】:

    • 问题是关于 Hamcrest 的。
    • 如果这个断言失败,消息会很复杂。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多