У меня есть тесты JUnit, которые используют TemporaryFolder
@Rule
. Они используют метод TemporaryFolder
в @Before
для выполнения некоторой настройки:
@Rule
public TemporaryFolder folder = new TemporaryFolder();
@Before
public void init() {
folder.newFile("my-file.txt");
}
@Test
public void myTest() { ... }
В большинстве случаев это работает отлично. Однако при использовании SpringJUnit4ClassRunner
я обнаружил, что в некоторых случаях метод init()
вызывается до того, как применяется Statement
внутри моего экземпляра TemporaryFolder
. Из-за этого временное расположение папки не задано (i.e: null
), когда folder
используется в init()
, а мой файл заканчивается в рабочем каталоге, а не /tmp
.
Поэтому в некоторых случаях методы @Before
выполняются раньше правил, однако я не могу установить определенный шаблон. Иногда я вижу аналогичную проблему с некоторыми моими собственными реализациями правил.
Есть ли способ, которым я могу гарантировать, что мои инструкции правил применяются до любых методов настройки?