@BeforeClass如果希望JUnit的注释在所有@Test方法之前运行一次,则必须将其声明为静态。但是,这不能与依赖项注入一起使用。
@BeforeClass
@Test
@Autowire在运行JUnit测试之前,我想使用Spring Boot 清理一个数据库。我无法@Autowire静态字段,因此我需要考虑解决方法。有任何想法吗?
@Autowire
只需使用@Before(而不是@BeforeClass)(或BeforeTransaction(取决于您初始化数据库的方式))。该注释必须附加到非静态公共方法上。
@Before
BeforeTransaction
当然: @Before在EACH测试用例方法之前运行(不是那样@BeforeClass仅运行一次。)但是,如果您想只运行一次,则使用静态标记字段。
private static boolean initialized = false; ... @Before public void initializeDB() { if (!initialized) { ... //your db initialization initialized = true; } } ---