在JUnit中为模块中的所有测试运行一些静态设置

mjqavswn  于 2023-08-05  发布在  其他
关注(0)|答案(1)|浏览(136)

我有多个模块的gradle项目,其中每个项目都包含一些测试。对于每个模块,在运行所有测试之前,我想执行static字段和其他配置初始化,以便使用此设置运行测试。我的意思是:

public class MyJUnitConfig{

    static {
         SomeClass.someStaticIntField = 5;
         //...
    }
}

字符串
问题是类不会被初始化,因此如果类没有被显式使用,static初始化器就不会被调用。
是否有一些JUNit(或其他)注解可以在JVM启动时初始化类,以便所有JUnit测试都使用在MyJUnitConfig静态初始化器中设置的static配置运行?

guz6ccqo

guz6ccqo1#

您可以遵循以下方法:
1.为模块中的所有测试创建基类,并用@ExtendWith(MockitoExtension.class)(或任何适合您的注解) 标记它。创建静态数据初始化方法,并使用@BeforeAll注解对其进行标记

@ExtendWith(MockitoExtension.class)
class BaseStepUnit {

  @BeforeAll
  static void setUp() {
    System.out.println("Init your static data in this method...");
  }
}

字符串
1.在模块中的每个测试类中继承基类

class TestA extends BaseStepUnit {
  
  @Test
  void test() {
    System.out.println("Test smth...");
  }
}

class TestB extends BaseStepUnit {
  
  @Test
  void test() {
    System.out.println("Test smth...");
  }
}


通过这种方式,您可以初始化模块中所有测试类的静态数据。

相关问题