как справиться с исключением с JUnit4? - PullRequest
1 голос
/ 05 октября 2010

Мой тест JUnit выглядит следующим образом:

public class Toto {

    @BeforeClass
    public static void initTest1() {
        try {
            openAppli();
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    @Test
    public void test1() {
        try{
            //do some actions
        } catch(Exception e) {
            e.printStackTrace();
        }
    }

    @AfterClass
    public static void AfterTest1() {
        CloseAppli();
    }
}

Я хотел бы знать:

  1. Это ожидаемый способ написания теста JUnit?
  2. Должен ли я вызвать try / catch или throws?
  3. Могу ли я вызвать те же BeforeTest1 () и AfterTest1 () в другом тестовом классе?

Ответы [ 2 ]

2 голосов
/ 05 октября 2010

В общем, вы не должны ловить базовый класс Exception. (Это иногда называют «обработкой исключений Pokemon», и если вы точно не знаете, зачем вам это нужно, это плохая практика.) Ваши модульные тесты всегда должны проверять определенный тип исключения, если вы ожидаете, что исключение будет выдано в противном случае они могут проходить, когда не должны.

Помните, что исключение означает (или должно означать), что ваш метод не может делать то, что его имя говорит, что он делает. В самом коде вы не должны поймать исключение, если не уверены, что точно знаете, что нужно сделать, чтобы восстановить его.

1 голос
/ 05 октября 2010

Если вы ожидаете, что будет сгенерировано исключение, вы можете пометить свой тест с помощью

@Test(expected=Exception.class)

за то исключение, которое вы ожидаете.

Если нет, вы можете объявить свой тест на выдачу Exception.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...