2011-08-25 82 views
2

我在eclipse中编写了一些junit测试,我需要在测试之前做一些耗时的设置。出现了@BeforeClass应该是这样做的方式。我目前在具有2个@Test函数的类上测试过。@BeforeClass在eclipse中为同一个类运行多次

当我在eclipse中右键单击一个类并选择“运行方式” - >“JUnit测试”时,我可以看到@BeforeClass在两个函数之前执行。

我甚至试图将@BeforeClass改为@Before并存储在一个布尔值中,不管我们是否已经执行过这个函数,但是看起来eclipse从同一个类创建了两个类对象,每个测试运行一个,也没有帮助。

那么,即使我有很多测试,我应该怎么做只有一次设置功能?或者,当我尝试运行测试时,只是错误地使用了eclipse?

的设置是这样的:

public class SuperClass { 
    @BeforeClass 
    public void { // do timeconsuming setup } 
} 

public class TestClass extends SuperClass { 
    @Test 
    public void test1() { // perform first test } 
    @Test 
    public void test2() { // perform second test } 
} 

回答

4

制作静态与BeforeClass注释的方法可以是溶液:

@BeforeClass 
public static void 
+1

其实我曾使用静态忘了,包括它在小示例代码。但是,无论如何,这指出了我的修复,我从非静态构造函数中调用了另一个函数,使得该函数静态地修复了它。对不起,没有把整个代码放在这里,它太多了。 – Zitrax

4

@BeforeClass方法应该是静态为了只执行一次。

相关问题