2010-03-17 149 views
4

我有两个测试来检查预期的异常抛出。我正在使用Junit 4并具有以下语法。Junit异常测试

@Test(expected=IllegalArgumentException.class) 
public void testSomething(){ 
.......... 
} 

即使引发IllegalArgumentException并且其他通过,其中一个测试失败。任何想法缺少什么?我修改了未能遵循的测试并通过测试。

public void testSomething(){ 
try{ 
    ............ //line that throws exception 
    fail(); 
}catch(IllegalArgumentException e) { 
} 
} 

回答

7

Prithis只是我注意到的第二个测试根本没有@Test注解。 JUNIT4不会运行即使方法名称以test ***开头也没有注释的测试(除非你实际上扩展了TestCase类,在这种情况下它的行为类似于JUNIT3.x测试用例)

也许这就是情况下,测试没有运行(因此使你认为它通过)?

+1

平静很斑点。是的,我扩展了TestCase并没有@test。我试图混合junit 3和4. 它现在工作。我不得不导入静态org.junit.Assert。*;不扩展testCase并添加@test – Prithis 2010-03-17 12:48:15