1

假设 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) {
      }
    }

为什么失败();这里需要, ls.add(null) 不会导致它失败,所以不放 fail(); 这里多余?

4

1 回答 1

4

上面的测试方法会失败,如果ls.add(null);没有抛出. 由于期望的行为是抛出异常,因此当异常被捕获时测试将通过。NullPointerExceptioncatch (NullPointerException e)

使用 Junit 4 你也可以这样做:

@Test(expected = NullPointerException.class)
public void testAddNull() {
    ls.add(null);
}

这将要求测试代码抛出一个NullPointerException. 否则,测试将失败。

于 2012-12-10T07:04:39.083 回答