0
我想測試我的insert
方法。 insert
方法只是將該對象添加到列表中。但是,當我使用assertEquals
時,它似乎是比較對象而不是對象的內容。assertEquals比較對象id而不是對象的內容?
有沒有辦法比較存儲在ArrayList中的用戶定義對象的元素?
@Test
public void testInsert() {
// Method answer
Interval newInterval = new Interval(1, 20);
ArrayList<Interval> emptyInterval = new ArrayList<Interval>();
ArrayList<Interval> returnedAnswer = Solution.insert(emptyInterval, newInterval);
// Expected answer
ArrayList<Interval> expected = new ArrayList<Interval>();
//expected.add(newInterval); // This will pass
expected.add(new Interval(1, 20)); // This will fail
assertEquals(expected, returnedAnswer);
}
通過調用其
equals
方法的對象
太棒了!實現了我自己的'Interval.equals(Object)'並且像魅力一樣工作。但是,還有其他方法可以做到嗎?因爲如果我有許多用戶定義的類,那麼覆蓋每個類的'euqals'會非常麻煩。 – LuckyGuess
我擴展了我的答案。 –
謝謝Stefan的幫助。我之前沒有使用Hamcrest,也是JUnit的新成員。我將不得不更多地關注這一點。現在,我想我會堅持重寫'equals'。 – LuckyGuess