提问者:小点点

子类TestCase并使用JUnit 4注释


为了测试我定义的Map类,我从Google Collection库扩展了MapInterfaceTest。

问题是我想在这个类中添加更多的测试,并且能够在开发时使用@Ignore注释忽略特定的长时间运行或损坏的测试,但是因为MapInterfaceTest扩展了TestCase,所以测试在Junit3兼容模式下运行,并且注释被忽略。

有没有办法让Junit尊重扩展TestCase的测试类上的注释?


共1个答案

匿名用户

在您的测试类中尝试此注释。

@RunWith(JUnit4.class)
public class MyTestCase extends MapInterfaceTest {...}

这应该会强制Junit在执行中使用Junit4而不是Junit3。也许这适用于您的测试用例。

但是,JUnit4不会采用旧式的“test*”测试方法,因为它依赖于@Test注释。如果您正在扩展的类没有这些注释并且您无法直接添加它们,您可以覆盖测试以在子类中添加注释,如下所示:

@Test
@Override
public void testFoo()
{
    super.testFoo();
}