我在http://www.mkyong.com/unittest/junit-4-vs-testng-comparison/找到了比较结果。如何在JUnit中准备类似@BeforeTest的内容?
答案 0 :(得分:1)
不熟悉TestNG,但根据我的理解,您可以使用Categories
,Suite
和@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
可以让你在设置一组测试时获得更细粒度的控制。