是否有任何最佳实践让Junit在测试文件中执行一次功能,并且它也不应该是静态的。
喜欢@BeforeClass在非静态功能?
@BeforeClass
这是一个丑陋的解决方案:
@Before void init(){ if (init.get() == false){ init.set(true); // do once block } }
好吧,这是我不想做的事情,我正在寻找集成的junit解决方案。
如果您不想为一次初始化设置静态初始化程序,并且不打算使用JUnit,请查看TestNG。TestNG通过各种配置选项支持非静态的一次性初始化,所有配置选项均使用注释。
在TestNG中,这等效于:
@org.testng.annotations.BeforeClass public void setUpOnce() { // One time initialization. }
拆解
@org.testng.annotations.AfterClass public void tearDownOnce() { // One time tear down. }
对于等同于JUnit 4 @Before和的TestNG @After,可以分别使用@BeforeMethod和@AfterMethod。
@Before
@After
@BeforeMethod
@AfterMethod