Да, используйте правило. По сути, у вас должен быть класс, который реализует интерфейс MethodRule, который обрабатывает обработку исключений в методе apply, заменяя собственную реализацию Statement, в которой есть try / catch.
Чтобы использовать правило, вы определяете поле в тестовом классе следующим образом:
@Rule public MethodRule exceptionCleanser = new ExceptionCleanser();
Первая реализация, вероятно, будет выглядеть примерно так:
public class ExceptionCleanser implements MethodRule {
public Statement apply(final Statement base, FrameworkMethod method, Object target) {
return new Statement() {
public void evaluate() throws Throwable {
try {
base.evaluate();
} catch (Exception e) {
throw org.codehaus.groovy.runtime.StackTraceUtils.sanitize(e);
}
}
};
}
}
Вышесказанное полностью не проверено, но вы должны быть в состоянии понять идею. Аннотация @Rule была введена в JUnit 4.7, поэтому вам может потребоваться обновить ее, чтобы использовать ее.