Я запускаю некоторые тесты для игры с Spring, но по некоторым причинам данные в файлах sql не сохраняются в базе данных. Вот мой тест:Весенние тесты не хранят данные в базе данных
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = {HibernateConfigTest.class})
@Transactional
@Sql(scripts = {"api_routes.sql",
"profile.sql",
"status.sql",
"user.sql",
"game_token.sql",
"game.sql",
"message.sql"},
executionPhase = ExecutionPhase.BEFORE_TEST_METHOD)
@Sql(scripts = "delete_data.sql",
executionPhase = ExecutionPhase.AFTER_TEST_METHOD)
public class GameDaoTest {
@Autowired
private GameDao gameDao;
@Test
public void testGetGamesByTokenId() {
assertEquals(36, gameDao.getGamesByTokenId(null).size());
}
}
Когда я запускаю тест, тест проходит успешно. Однако, когда я смотрю на базу данных, во время теста ни одна из данных не находится там. Похоже, что Spring работает без памяти в базе данных.
Есть ли в любом случае, чтобы данные сохранялись в базе данных?
Я далек от того из знающих о весеннем платформе, но мне интересно, о ' @Sql (scripts = "delete_data.sql", executePhase = ExecutionPhase.AFTER_TEST_METHOD) ' – jdphenix
Что заставляет вас задуматься об этом? Тест проходит очень хорошо. –