JNit中的TestNG @BeforeTest等价物

时间:2011-12-18 09:00:27

标签: unit-testing junit integration-testing testng

我在http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/找到了比较结果。如何在JUnit中准备类似@BeforeTest的内容?

1 个答案:

答案 0 :(得分:1)

不熟悉TestNG,但根据我的理解,您可以使用CategoriesSuite@BeforeClass / @AfterClass的组合来执行类似的操作。

例如:

import org.junit.BeforeClass;
import org.junit.experimental.categories.Categories;
import org.junit.experimental.categories.Categories.IncludeCategory;
import org.junit.runner.RunWith;
import org.junit.runners.Suite.SuiteClasses;


@RunWith(Categories.class)
@SuiteClasses(MyClassTest.class)
@IncludeCategory(IntegrationTest.class)
public class StaticTests {
    @BeforeClass
    public static void setUp() {
        System.out.println("Hello, World!");
    }
}

然后在你的测试中将事物标记为@Category(IntegrationTest.class)并且你将拥有一个逻辑分组的测试 - 来自多个不同的测试类 - 你可以在其中运行初始化。

类别允许您标记要包含在套件中的特定测试,但也可以(如果您首先按类分开)只是为了在套件中包含相关的测试,或者让它们继承自基类,有它的配置。哪一个最好取决于您希望如何对测试和特定用例进行分组。

正如Matthew Farwell所提到的那样,还有TestRule可以让你在设置一组测试时获得更细粒度的控制。