2013-07-11 72 views
4

我有一個類List(編輯:我寫我自己),用方法List.equals,所以我要像如何測試一個.equals()方法使用JUnit和Hamcrest

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

運行的東西因此,使用匹配器和assertThat,我想也許

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

但是,這是越來越漂亮傻...編輯:也許我可以寫我自己的匹配

是否有更好的方法來檢查,如果我的equals方法是工作正常?

這是JUnit4.5

回答

9
import static org.hamcrest.Matchers.equalTo; 
import static org.hamcrest.MatcherAssert.assertThat;  

... 

assertThat(list1, equalTo(list2)); 
+0

這就是我所需要的,它自動調用.equals方法,我沒有意識到這是一個選項。 – Henry

+4

'is'匹配器也是'equalTo'的同義詞。 –

1

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

+5

問題是關於Hamcrest。 – samlewis

+0

如果這個斷言失敗了,這個消息會非常複雜。 – Olaf