2012-12-10 232 views
1

假设MYLIST的add方法接受一个参数,并且指定如果null被赋予作为参数抛出一个NullPointerException异常 的一个特征。完成此JUnit测试方法测试 该功能的加入方法: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();这里多余?

+0

你应该把失败()关闭...这是什么写在答案的关键,如果我把它关闭将它的作用是相同 – rae1

+0

? – cloud9resident

+0

我不知道,但你应该尝试找出答案。这是回答您的问题的最快捷方式,但我现在没有Java编译器。 – rae1

回答

4

上述测试方法将失败,如果ls.add(null);确实不是则抛出NullPointerException。因为期望的行为是抛出异常,当异常在catch (NullPointerException e)钓到的测试将通过。

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

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

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