Eclipse JUnit @Before注释问题

时间:2010-06-12 20:50:34

标签: junit

我在Eclipse中使用JUnit 4.5时遇到了一些困难,当我使用@Before注释时它什么也没做(我当然可以使用setUp(),但是我只是想知道什么是错的),而它在Netbeans中完美运作..有什么想法吗?

3 个答案:

答案 0 :(得分:6)

因为我通过谷歌搜索来点击这里,并且必须深入挖掘才能看到实际的解决方案: 正如@Pace在评论中所说,如果你extend TestCase,Eclipse将测试视为JUnit版本3或更早版本,并且不尊重@Before注释 - 此处也有描述:JUnit + Maven + Eclipse: Why @BeforeClass does not work?

因此,删除extend TestCase原因会解决问题

答案 1 :(得分:2)

如果您使用的是JUnit 4,则只需使用@Test注释注释测试类或测试方法,而不是扩展TestCase。

答案 2 :(得分:2)

由于您使用的是JUnit 4+,因此有两种方法可以编写测试用例

1>您创建测试类extend TestCase。在这种情况下,拾取与Junit 3相对应的类,这些类不知道@Before注释。在这种情况下,您必须覆盖

/**
 * Sets up the fixture, for example, open a network connection.
 * This method is called before a test is executed.
 */
protected void setUp() throws Exception {
}

2>使用注释。对您有兴趣作为测试运行的测试类中的方法使用@Test注释。您的班级不需要extend TestCase。您也不必覆盖任何方法。只需定义自己的方法,该方法具有在测试方法运行之前要执行的逻辑,并使用@Before注释对其进行注释。