我在測試我的一些方法我的課,我得到了以下錯誤:Java的Asse田,但我得到正確的答案
java.lang.AssertionError: expected: com.company.ArrayList<[ 11 12 ]> but was: com.company.ArrayList<[ 11 12 ]>
我看不出區別。基本上我有這個測試:
public void setUp() throws Exception {
List ot = new ArrayList();
ot.add(11);
ot.add(12);
prg = new ProgState(ot);
}
prg是在課前宣佈,作爲私人。
@Test
public void testGetOut() throws Exception {
List wtf = new ArrayList();
wtf.add(11);
wtf.add(12);
assertEquals(wtf, prg.getOut());
}
ArrayList的是我自己的ADT,List是接口,ProgState就是:
public class ProgState {
private List out;
public ProgState(List ot) {
out = ot;
}
public List getOut() {
return out;
}
這只是我回列表。爲什麼不接受ot = [11,12]與wtf = [11,12]相同?我根本不知道。
_「ArrayList是我自己的ADT」_然後顯示它的equals實現。 –
好像你實現了你自己的'com.company.ArrayList'。你能分享它的實現嗎?具體來說 - 你是否覆蓋了'equals(Object)'方法? – Mureinik
是的,我做到了。我最終沒有壓倒平等,而是改變了整個觀點。我創建了另一個數組,添加了我在第一個數組中添加的相同整數,並在兩個方法上都使用了方法.get(0)兩次,並比較結果,如果我得到錯誤答案,則更改標記。我在國旗上應用了assert。感謝您的回答,並感謝您不回覆。 – Charlotte45