我写了一个Date类,考虑到闰年,它增加/减去天/月/年。我现在需要编写一个带有硬编码数据的测试程序来测试我的实现。最简单的方法是创建一个“参考”日期,然后有一个循环,一次一天向前,比如3年(包括闰年),然后打印出参考日期和其他一些日期相对于它构建的日期。我没有很多java经验,所以我想知道我将如何实际做到这一点?
答案 0 :(得分:2)
您实际上并不需要测试所有这些案例。考虑测试表示集合的案例。
即。它没有必要测试一个给定的日期和后一天,因为内部的行为会相同(除非我们在谈论二月,每四年有一个额外的一天)。
尝试为每个案例设计一个测试。例如,我测试一个随机日期,一个月31天,另一个月30日,2月作为特例,如果null
传递给函数会发生什么。
这样,如果出现问题,您将很容易知道发生了什么。
答案 1 :(得分:1)
通过添加1天来循环播放日期会有效,但在我看来这是复杂的。举几个例子就足够了:
闰年的(伪代码)
// assuming 1996-02-28 is a leap year which i have not verified
MyDate feb28th = createDate("1996-02-28");
feb28th.addDays(1);
AssertEquals("1996-02-29", feb28th.toString());
非闰年的(伪代码)
MyDate feb28th = createDate("1997-02-28");
feb28th.addDays(1);
AssertEquals("1997-03-01", feb28th.toString());
也许您还需要针对每个特殊情况进行一次测试,例如