2009-07-19 32 views
26

我在eclipse中使用JUnit 4拒绝通过以下测试用例。 什么可能是错的?JUnit预期标记不能按预期工作

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

这个确切的测试用例是约试图与预期的标签没有工作,以测试自己的代码的时候。我想看看JUnit是否会通过最基本的测试。它没有。

我也测试过自定义异常,但没有运气。

截图: Screenshot http://www.freeimagehosting.net/uploads/6a995b0db7.png

+2

这一个真的很奇怪,做了一些测试我自己,并且这个代码运行良好(测试是成功的)... – Torandi 2009-07-20 00:22:59

+0

我添加了一个截图,只是为了显示...我也会怀疑。 – 2009-07-20 01:17:33

回答

71

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

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

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

通行证完美:

3

使用JUnit 4.4刚跑到这的IntelliJ。

重建您的整个项目,然后重试。还有别的,你做错了。 JUnit 4.4正在广告中工作。