我正在为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似乎不知道我在运行内存数据库。
无论如何要确保数据被持久化到数据库吗?
我是从知识渊博的有关Spring平台远远不能回滚使用,但我想知道' @Sql(scripts =“delete_data.sql”, executionPhase = ExecutionPhase.AFTER_TEST_METHOD)' – jdphenix
是什么让你想到这一点?测试通过很好。 –