public class CourseSessionTest extends TestCase {
public void testCreate() {
CourseSession session = new CourseSession("ENGL", "101");
assertEquals("ENGL", session.getDepartment());
assertEquals("101", session.getNumber());
}
public void testEnrollStudents() {
CourseSession session = new CourseSession("ENGL", "101");
Student student1 = new Student("Cain DiVoe");
session.enroll(student1);
}
}
在以上两个方法中都初始化了一个新的CourseSession对象,并存储该对象的应用到一个局部变量session。
JUnit提供了一种消除此类冗余的方法——setUp方法。
public class CourseSessionTest extends TestCase {
private ConurseSession session;
public void setUp() {
session = new CourseSession("ENGL", "101");
}
public void testCreate() {
assertEquals("ENGL", session.getDepartment());
assertEquals("101", session.getNumber());
}
public void testEnrollStudents() {
Student student1 = new Student("Cain DiVoe");
session.enroll(student1);
assertEquals(1, session.getNumberOfStudents());
}
}
注意谨防以下错误:
public void setUp() {
CourseSession session = new CourseSession("ENGL", "101");
}
定义局部变量的名字和某个成员变量的名字相同,这是合法的。但是,这样意味着无法正确的初始化成员变量session。结果会导致空指针异常(NullPointerException)。