Вызов пользовательского метода при получении исключения в тесте

1

Я ищу, чтобы найти, можно вызвать специальный метод всякий раз, когда исключение выбрасывается в тесте. т.е. у меня есть несколько тестов (annotated @Test), и я хочу написать только один метод, который обрабатывает исключения на моем пути (например, для написания специального сообщения для junit и т.д.). (Я ищу что-то, что не является блоком try/catch для каждого теста)

Заранее спасибо.

  • 0
    Вы всегда можете вызвать этот метод в блоке catch, но что именно для этого нужно использовать в модульных тестах?
  • 0
    Как насчет использования метода @After для запуска вашей пользовательской логики?
Показать ещё 1 комментарий
Теги:
junit
exception
exception-handling

2 ответа

0
Лучший ответ

Попробуйте использовать 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

  • 0
    Потрясающие! Это именно то, что я искал! Большое спасибо!
  • 0
    Удовольствие. Кстати, когда вы ссылаетесь на других пользователей, используйте знак «@» перед именем пользователя, чтобы другой пользователь мог получить сообщение (например, @ shlomi33, а не shlomi33)
Показать ещё 4 комментария
0

Если вы используете Spring, возможно, вы можете рассмотреть Обработчик исключений

http://spring.io/blog/2013/11/01/exception-handling-in-spring-mvc

  • 0
    Я не использую Spring, так что это не имеет значения :(

Ещё вопросы

Сообщество Overcoder
Наверх
Меню