单元测试时如何跳过@PostConstruct

gno*_*ndo 2 java spring junit4 postconstruct

我有一个计划任务,每天晚上汇总数据。每当我启动应用程序时,任务就会运行,当我在应用程序上运行 jUnit 测试时,我想阻止它运行。

@Scheduled(cron = "0 0 0 1 * ?")
public void SalesDataAggregation() {
    //aggregation
}
Run Code Online (Sandbox Code Playgroud)

编辑

上面的方法也在这里被调用

@PostConstruct
public void init(){
    SalesDataAggregation();
}
Run Code Online (Sandbox Code Playgroud)

rlw*_*ler 8

由于@PostConstruct注释,SalesDataAggregate方法在启动时运行。如果您想防止它在测试期间运行,您可以在测试文件夹中创建包含 post 构造的类并添加@primary注释,使其优先于主项目中的类。

@Primary
public class ClassContainingPostConstruct{   

}
Run Code Online (Sandbox Code Playgroud)