Все мои тесты для моего кода Groovy похожи на это
public void testButtons() {
try {
page.getButtons();
} catch (Exception e) {
throw org.codehaus.groovy.runtime.StackTraceUtils.sanitize(e);
}
}
потому что я должен санировать любой возможный StackTrace, который появляется (иначе, очень трудно читать, так как это имеет весь метакод Groovy). Там какой-либо путь состоит в том, чтобы указать, что все тесты JUnit перенесены в особенности путь (как обработчик ошибок)?
Примечание: Я выполняю их в Eclipse, но если бы существует способ сделать это в IntelliJ или Netbeans, который был бы хорош для знания.
Да, используйте правило. По сути, у вас должен быть класс, реализующий интерфейс 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, поэтому вам может потребоваться обновить ее, чтобы использовать ее.