java - 如何在静态@BeforeClass 中 Autowiring 字段?

标签 java spring junit spring-test

@RunWith(SpringJUnit4ClassRunner.class)
public void ITest {
    @Autowired
    private EntityRepository dao;

    @BeforeClass
    public static void init() {
        dao.save(initialEntity); //not possible as field is not static
    }
}

如何让我的服务已经注入(inject)到静态初始化类中?

最佳答案

使用 Junit 5,您可以做到这一点(@BeforeAll 而不是 @BeforeClass)

public void ITest {
    @Autowired
    private EntityRepository dao;

    @BeforeAll
    public static void init(@Autowired EntityRepository dao) {
        dao.save(initialEntity); //possible now as autowired function parameter is used
    }
}

离开该字段意味着它可以用于其他测试

关于java - 如何在静态@BeforeClass 中 Autowiring 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29340286/

相关文章:

java - 尝试使用 JavaFX 2 实现 "Caret Browsing"

java - 无法通过 Android M 代码设置铃声

java - 如何在略有不同的 jar 列表上运行测试用例?

java - 检索 TextView.getText() 以设置带有开始按钮的 CountDownTimer

java - 在 Weka 中创建兼容的训练和测试实例

java - Spring jdbcTemplate OneToMany

spring - Intellij 顶级元素未完成

java - Spring 启动 : get command line argument within @Bean annotated method

java - jUnit - 是否可以不同时运行测试?

spring - 使用 Scala 规范对 Spring 应用程序进行单元测试