Я ищу, чтобы найти, можно вызвать специальный метод всякий раз, когда исключение выбрасывается в тесте. т.е. у меня есть несколько тестов (annotated @Test), и я хочу написать только один метод, который обрабатывает исключения на моем пути (например, для написания специального сообщения для junit и т.д.). (Я ищу что-то, что не является блоком try/catch для каждого теста)
Заранее спасибо.
Попробуйте использовать JUnit TestRule
примерно так:
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
public class TestWatcherExample {
@Rule
public MyTestWatcher myTestWatcher = new MyTestWatcher();
@Test
public void testName() throws Exception {
System.out.println("hello");
throw new Exception("ooops, something bad just happened");
}
public static class MyTestWatcher extends TestWatcher {
@Override
protected void failed(Throwable e, Description description) {
super.failed(e, description);
// Just doing my special stuff here
System.out.println("test faild with this message " + e.getMessage());
}
}
}
Если вам нужна дополнительная информация о правилах тестирования, прочитайте здесь: https://github.com/junit-team/junit/wiki/Rules
Если вы используете Spring, возможно, вы можете рассмотреть Обработчик исключений
http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc