2011-10-24 65 views
2

我有一个小的junit4测试,期望有一个例外。 此代码:测试与预期的异常显示为失败

@Test(expected = EntityVide.class) 
    public void testPing() throws Exception { 
     System.out.println("ping"); 
     int in = 0; 
     int expResult = 1; 
     int result = instance.ping(in); 

    } 

当我运行测试表明作为一个失败的一个。 我已经添加@RunWith(JUnit4ClassRunner.class),但没有任何更改。 我使用netbeans 7.0和junit 4.

谢谢。

+2

什么是'EntityVide'? –

+0

你的类是否扩展了'junit.TestCase'?如果是这样,即使添加'@ Test'注释,它也会作为JUnit 3测试运行。要检查,只需将您的方法重命名为不以'test'开头的内容:如果它不再执行,那么您将使用JUnit 3 runner来运行它。 –

+0

它实际上是否会抛出异常? – Thomas

回答

3

expected @Test注释的属性是预期的例外。有时你想让你的测试抛出某种类型的异常。在JUnit的3. *版本中,你必须自己编写try/catch。在Junit 4中,您可以使用注释标记此测试。

你的测试不会抛出异常,所以它失败了,因为你说你期望EntityVide类型的异常。删除此属性并使用Assert.assertEquals()验证您的结果。