假设MyList的add方法使用一个参数,如果给出null作为其参数,则将其指定为抛出一个NullPointerException。完成此JUnit测试方法以测试add方法的该特性:
public void testAddNull() {
MyList<String> ls = new MyList<String>();
}这就是答案:
public void testAddNull() {
MyList<String> ls = new MyList<String>();
try {
ls.add(null);
fail();
} catch (NullPointerException e) {
}
}为什么fail();在这里需要,ls.add(null)会不会导致它失败,所以不是isn();这里是多余的吗?
发布于 2012-12-10 07:04:39
如果ls.add(null);不抛出NullPointerException,上述测试方法将失败。由于所需的行为是抛出异常,所以当异常在catch (NullPointerException e)中捕获时,测试将通过。
使用Junit 4,您也可以这样做:
@Test(expected = NullPointerException.class)
public void testAddNull() {
ls.add(null);
}它需要经过测试的代码才能抛出NullPointerException。否则,测试就会失败。
https://stackoverflow.com/questions/13795014
复制相似问题