JUnit期望标记不按预期工作

Ben*_*n S 33 java junit unit-testing junit4

我在eclipse中有以下测试用例,使用拒绝传递的JUnit 4.可能有什么不对?

@Test(expected = IllegalArgumentException.class)
public void testIAE() {
    throw new IllegalArgumentException();
}
Run Code Online (Sandbox Code Playgroud)

当尝试使用期望的标记测试我自己的代码时,这个确切的测试用例就出现了.我想看看JUnit是否会通过最基本的测试.它没有.

我还测试了自定义异常,没有运气.

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

Yis*_*hai 81

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

要解决此问题,请从类定义中删除"extends TestCase".

  • 找到隐藏的解决方案作为屏幕截图中的提示非常棒的工作 (6认同)
  • 删除扩展的TestCase后,我不得不添加额外的导入以确保我有静态断言方法.import static org.junit.Assert.*; (5认同)