我是使用JUnit的新手,所以我可能会遗漏一些完全基本的东西,但以下是我收到的输出:
Testcase: testDateFromDayOfYear(p3.DateADTest): FAILED
expected: p3.DateAD<Saturday, 1 January, 2000> but was: p3.DateAD<Saturday, 1 January, 2000>
junit.framework.AssertionFailedError: expected: p3.DateAD<Saturday, 1 January, 2000> but was: p3.DateAD<Saturday, 1 January, 2000>
at p3.DateADTest.testDateFromDayOfYear(DateADTest.java:85)
我还比较了两个对象:
System.out.println("*******************************************");
System.out.println(result.getClass());
System.out.println(expResult.getClass());
System.out.println("*******************************************");
*******************************************
class p3.DateAD
class p3.DateAD
*******************************************
有人可以提供一些建议吗?
测试方法的完整代码:
@Test
public void testDateFromDayOfYear() {
System.out.println("dateFromDayOfYear");
short dayOfYear = (short)1;
short year = (short)2000;
DateAD instance = new DateAD();
DateAD expResult = new DateAD(dayOfYear, (short)1, year);
DateAD result = instance.dateFromDayOfYear(dayOfYear, year);
System.out.println("*******************************************");
System.out.println(result.getClass());
System.out.println(expResult.getClass());
System.out.println("*******************************************");
assertEquals(expResult, result);
}
等于方法:
public boolean equals(Object inputDate) {
if (this.year == inputDate.year &&
this.dayOfYear == inputDate.dayOfYear) {
return true;
}
else {
return false;
}
}
答案 0 :(得分:1)
assertEquals
将调用equals
,它引用引用类型的内存位置。如果您可以覆盖Equals
的{{1}}(和getHashCode
)方法,则应该这样做。
否则,对构成日期(或以毫秒/纳秒为单位的时间)的小时,分钟,天等执行等号检查。
DateAD