-1
一切似乎都很完美,但测试用例仍然失败,给我一个所有这些的Java.lang.nullPointerException。为什么这个JUnit测试用例失败?
下面是测试案例
@Test
public void validMonths() {
DayOfWeek dow = new DayOfWeek(1, 1, 1900);
assertTrue(dow.getMonthString().compareTo("January") == 0);
dow = new DayOfWeek(2, 1, 1900);
assertTrue(dow.getMonthString().compareTo("February") == 0);
dow = new DayOfWeek(3, 1, 1900);
assertTrue(dow.getMonthString().compareTo("March") == 0);
dow = new DayOfWeek(4, 1, 1900);
assertTrue(dow.getMonthString().compareTo("April") == 0);
dow = new DayOfWeek(5, 1, 1900);
assertTrue(dow.getMonthString().compareTo("May") == 0);
dow = new DayOfWeek(6, 1, 1900);
assertTrue(dow.getMonthString().compareTo("June") == 0);
dow = new DayOfWeek(7, 1, 1900);
assertTrue(dow.getMonthString().compareTo("July") == 0);
dow = new DayOfWeek(8, 1, 1900);
assertTrue(dow.getMonthString().compareTo("August") == 0);
dow = new DayOfWeek(9, 1, 1900);
assertTrue(dow.getMonthString().compareTo("September") == 0);
dow = new DayOfWeek(10, 1, 1900);
assertTrue(dow.getMonthString().compareTo("October") == 0);
dow = new DayOfWeek(11, 1, 1900);
assertTrue(dow.getMonthString().compareTo("November") == 0);
dow = new DayOfWeek(12, 1, 1900);
assertTrue(dow.getMonthString().compareTo("December") == 0);
}
这里是我的方法
public String getMonthString(){
String[] arrayOfMonths = new String[11];
arrayOfMonths[0] = "January";
arrayOfMonths[1] = "February";
arrayOfMonths[2] = "March";
arrayOfMonths[3] = "April";
arrayOfMonths[4] = "May";
arrayOfMonths[5] = "June";
arrayOfMonths[6] = "July";
arrayOfMonths[7] = "August";
arrayOfMonths[8] = "September";
arrayOfMonths[9] = "October";
arrayOfMonths[10] = "November";
arrayOfMonths[11] = "December";
if (this.myMonth > 0 && this.myMonth <=12){
return arrayOfMonths[this.myMonth-1];
}
else{
return "NO_VALUE";
}
}
没有人知道是怎么回事?
如果您发布堆栈跟踪并指出哪条线路正在抛出异常,这将会很有帮助。 –
这行是失败跟踪,assertTrue(dow.getMonthString()。compareTo(“January”)== 0); –
dow为null,dow.getMonthString()为null或compareTo()抛出NPE。打印出dow和get.getMonthString()。 –