我有两个测试来检查预期的异常抛出。我正在使用Junit 4并具有以下语法。
@Test(expected=IllegalArgumentException.class)
public void testSomething(){
..........
}
其中一个测试失败,即使抛出了IllegalArgumentException而另一个也通过了。有什么想法丢失?我修改了无法跟踪的测试并且通过了。
public void testSomething(){
try{
............ //line that throws exception
fail();
}catch(IllegalArgumentException e) {
}
}
答案 0 :(得分:7)
Prithis只是我注意到第二次测试根本没有@Test注释。即使方法名称以test ***开头,JUNIT4也不会运行未注释的测试(除非您实际扩展了TestCase类,在这种情况下它的行为类似于JUNIT3.x测试用例)
也许情况就是测试根本没有运行(因此会让你觉得它通过了)?