44

我在eclipse中有以下测试用例,使用拒绝通过的JUnit 4。有什么问题?

@Test(expected = IllegalArgumentException.class)
public void testIAE() {
    throw new IllegalArgumentException();
}

当尝试使用预期标记测试我自己的代码不起作用时,出现了这个确切的测试用例。我想看看 JUnit 能否通过最基本的测试。它没有。

我还按预期使用自定义异常进行了测试,但没有运气。

截屏: 截屏

4

3 回答 3

98

问题是您的 AnnounceThreadTest 扩展了 TestCase。因为它扩展了 TestCase,所以 JUnit Runner 将其视为 JUnit 3.8 测试,并且测试正在运行,因为它以单词 test 开头,隐藏了 @Test 注释实际上根本没有被使用的事实。

要解决此问题,请从类定义中删除“扩展 TestCase”。

于 2009-07-20T01:21:32.993 回答
3

您可以添加它以使用支持注释的 Junit4 运行您的测试用例,而不是删除 extends TestCase 。

@RunWith(JUnit4.class)

于 2018-06-14T23:19:45.357 回答
2

只需使用 JUnit 4.4 在 IntelliJ 中运行它:

   @Test(expected = IllegalArgumentException.class)
   public void testExpected()
   {
       throw new IllegalArgumentException();
   }

完美通过。

重建整个项目并重试。还有其他事情你做错了。JUnit 4.4 正在像宣传的那样工作。

于 2009-07-20T01:26:10.350 回答