Разница между @Before и @BeforeClass в JUnit 4?
Разбираюсь с JUnit 4, а в частности с аннотациями @Before и @BeforeClass. Не могу понять: @BeforeClass выполняется перед инстанциированием класса теста, а @Before перед каждым тестом.
Но! Насколько я знаю, JUnit создаёт класс теста заново для каждого теста (поправьте, если ошибаюсь). Таким образом и @Before и @BeforeClass выполняются перед каждым тестом, а тогда в чём разница? Или разница в том, что @BeforeClass выполняется перед тем, как класс инстанцирован, а @Before уже тогда, когда класс инстанцирован? Если да, то какое это имеет применение, так как я не могу придумать задач, которые требуется выполнять именно перед инстанцированием класса.
Ответы (1 шт):
Ответ найден!
Да, для каждого теста создаётся новый экземпляр тестового класса, а @BeforeClass и правда выполняется перед инстанцированием класса (и поэтому обязан быть статическим), но выполняется единожды, а не перед каждым инстанцированием, в отличии от @Before, который выполняется перед каждым тестом.