【发布时间】:2015-10-13 21:29:44
【问题描述】:
我正在为我的班级测试我的一些方法,但出现以下错误:
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)方法? -
是的,我做到了。我最终没有超越平等,而是改变了整个视角。我制作了另一个数组,添加了我在第一个数组中添加的相同整数,并在它们两个上使用了 .get(0) 方法两次并比较了结果,如果我得到错误的答案,则更改一个标志。我在标志上应用了断言。感谢您的回答,很抱歉没有回复。