假设MyList的add方法接受一个参数,并指定抛出一个 NullPointerException如果给出null作为其参数。完成此JUnit测试方法以测试该功能 添加方法:
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) {
}
}
为什么失败();这里需要的是,ls.add(null)不会导致它失败,所以不会放入fail();多余的?
答案 0 :(得分:4)
如果ls.add(null);
不投掷NullPointerException
,则上述测试方法将失败。由于所需的行为是抛出异常,因此在catch (NullPointerException e)
处捕获异常时将通过测试。
使用Junit 4你也可以这样做:
@Test(expected = NullPointerException.class)
public void testAddNull() {
ls.add(null);
}
这将要求测试代码抛出NullPointerException
。否则,测试将失败。