我在eclipse中有以下测试用例,使用拒绝传递的JUnit 4。 可能出现什么问题?
@Test(expected = IllegalArgumentException.class)
public void testIAE() {
throw new IllegalArgumentException();
}
当尝试使用期望的标记测试我自己的代码时,这个确切的测试用例出现了。我想看看JUnit是否会通过最基本的测试。它没有。
我还测试了自定义异常,没有运气。
答案 0 :(得分:79)
问题是您的AnnounceThreadTest扩展了TestCase。因为它扩展了TestCase,所以JUnit Runner将它视为JUnit 3.8测试,并且测试正在运行,因为它以单词test开头,隐藏了@Test注释实际上根本没有被使用的事实。
要解决此问题,请从类定义中删除“extends TestCase”。
答案 1 :(得分:2)
使用JUnit 4.4在IntelliJ中运行它:
@Test(expected = IllegalArgumentException.class)
public void testExpected()
{
throw new IllegalArgumentException();
}
顺利通过。
重建整个项目,然后重试。还有别的事你做错了。 JUnit 4.4正如宣传的那样工作。
答案 2 :(得分:2)
您可以使用支持注释的Junit4来运行测试用例,而不是删除扩展的TestCase。
@RunWith(JUnit4.class)