Використання порожнього конструктора - найпростіше рішення. Ви все ще можете замінити конструктор у розширеному класі.
Але це не оптимально з усією спадщиною. Ось чому JUnit 4 використовує замість них анотації.
Інший варіант - створити допоміжний метод у класі factory / util і дозволити цьому методу виконати роботу.
Якщо ви використовуєте Spring, вам слід подумати про використання @TestExecutionListeners
анотації. Щось на зразок цього тесту:
@RunWith(SpringJUnit4ClassRunner.class)
@TestExecutionListeners({CustomTestExecutionListener.class,
DependencyInjectionTestExecutionListener.class})
@ContextConfiguration("test-config.xml")
public class DemoTest {
Spring AbstractTestExecutionListener
містить, наприклад, цей порожній метод, який ви можете замінити:
public void beforeTestClass(TestContext testContext) throws Exception {
}
Примітка: Чи не пропускайте / промах DependencyInjectionTestExecutionListener
при додаванні користувача TestExecutionListeners
. Якщо ви це зробите, всі автопроводи будуть null
.