以下代码
import java.util.Date;
import junit.framework.TestCase;
public class TestTest extends TestCase {
public static void main(String[] args) {
junit.swingui.TestRunner.run(PayrollTest.class);
}
public TestlTest(String name) {
super(name);
}
public void testDate()
{
Date lastDay=new Date(2004,2,30);
Test t=new Test();
assertTrue(t.IsLastDayOfMonth(lastDay());
}
}
class Test{
final long oneDay = 24 * 60 * 60 * 1000;
boolean IsLastDayOfMonth(Date date) {
int m1 = date.getMonth();
int m2 = (new Date(date.getTime() + oneDay)).getMonth();
return (m1 != m2);
}
}
这个单元测试不通过,后来才知道原因,原来java.util.Date类的月份范围是0-11。3月份就是4月份,年份必须减1900。所以单元测试不能通过,从这里也可以看出单元测试有多么重要。如果没有单元测试,知道提交我可能也无法发现这个问题。