在项目中,写UT的时候,有时候需要区分正式环境和测试环境,比如在测试controller时,发现有个interceptor需要用户登录才行,那如何在UT的时候跳过用户登录校验呢?当然有很多方法,这里介绍一种方法,就是在代码中检查是否在junit环境。
public static boolean isJUnitTest() {
for (StackTraceElement element : Thread.currentThread().getStackTrace()) {
if (element.getClassName().startsWith("org.junit.")) {
return true;
}
}
return false;
}
或者这样
private Boolean isRunningTest = null;
private boolean isRunningTest() {
if (isRunningTest == null) {
isRunningTest = true;
try {
Class.forName("org.junit.Test");
} catch (ClassNotFoundException e) {
isRunningTest = false;
}
}
return isRunningTest;
}