当应用程序在单元测试模式下运行时,我想在运行时停用某些函数。有没有办法识别它?
感谢您的任何提示!
答案 0 :(得分:0)
感谢您的提示!
此代码适用于我的目的:
public static boolean junitIsActive() {
for (StackTraceElement s : Thread.currentThread().getStackTrace()) {
if (s.getClassName().contains("org.junit.runners.model")) {
return true;
}
}
return false;
}
答案 1 :(得分:0)
谢谢@vaio。
@Bean
boolean testMode() {
for (StackTraceElement s : Thread.currentThread().getStackTrace()) {
if (s.getClassName().contains("org.springframework.boot.test.context.SpringBootContextLoader")) {
return true;
}
}
return false;
}
在我的情况下(Spring Boot 批处理),上面的代码可以工作。
我只是想让一些 Job
不在测试模式下运行。
@Bean
public Job reindexLeadsJob(JobCompletionNotificationListener listener, Step stepReindexFromMongoDB) {
if (testMode) {
return null;
}
return jobBuilderFactory.get("reindexLeadsJob")
.incrementer(new RunIdIncrementer())
.listener(listener)
.flow(stepReindexFromMongoDB)
.end()
.build();
}
现在在测试模式下,我简单地在 JobConfig
中返回 null。还有其他更优雅的方式吗?