4

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

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

即使抛出 IllegalArgumentException 并且其他测试通过,其中一个测试也会失败。知道缺少什么吗?我修改了未能遵循的测试并通过了。

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

1 回答 1

7

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

也许这就是测试根本没有运行的情况(因此让你认为它通过了)?

于 2010-03-17T12:34:24.553 回答