我在Eclipse中使用JUnit 4.5时遇到了一些困难,当我使用@Before注释时它什么也没做(我当然可以使用setUp(),但是我只是想知道什么是错的),而它在Netbeans中完美运作..有什么想法吗?
答案 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
注释对其进行注释。