У меня есть тест JUnit, похожий на этот:
@RunWith(JUnitParamsRunner.class)
public class ProcessnDbUnitTest extends DbunitTestParent {
@Autowired
private ProcessRepositiory pr;
private static List<Object[]> allProcessIds = new ArrayList<>();
private static Object[][] result = new Object[allPDRIds.size()][];
private static List<Process> process = new ArrayList<>();
@Before
public void before() {
processes = pr.findAll();
pr.findAll().stream().forEach(process -> allProcessIds.add(new Object[] { process.getId() }));
result = new Object[allProcessIds.size()][];
}
DbUnitTestParent:
@ContextConfiguration(classes = DbUnitApplication.class)
@RunWith(Suite.class)
@SuiteClasses({UserDbUnitTest.class, ProcessDbUnitTest.class })
public class DbunitTestParent extends AbstractTransactionalJUnit4SpringContextTests {
@PersistenceContext
private EntityManager em;
@After
public final void flush() {
em.flush();
}
}
Сам тест в этом случае не имеет значения. Поля имеют статус c, потому что метод @Before
выбирает данные для параметризованного теста.
Когда я отлаживаю тест, я вижу, что в методе before()
автонастройка ProcessRepository
значение NULL. Странно то, что в другом, очень похожем тесте все работает нормально ... Почему это могло произойти?