我刚开始用JUnit编写我的第一个单元测试,然后遇到了一个小问题。 在我的单元测试中,我正在将新数据插入到我的MySql数据库中。添加完信息后,我会在下一次单元测试中删除相同的信息。
我的table-id是自动递增的,每次单元测试我运行下一个id的值都会增加1。
我使用@AfterClass注释实现了一个新方法,这样在我完成单元测试后,它将重置增量值。我使用了这个查询:
entityManager.createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1");
如果我将新信息直接添加到我的MySql数据库中,则下一个id的值不是我想要的值(我的表+1中的最后一个id值)。
但是,当我直接在数据库中运行sql-query时,查询确实有效。
我的问题:在单元测试时是否无法运行这些查询?或者我完全以错误的方式看待这个。
我正在使用java,spring,hibernate,jpa,junit
提前致谢!
答案 0 :(得分:4)
您创建了一个查询,但忘了执行它:
entityManager
.createNativeQuery("ALTER TABLE student AUTO_INCREMENT = 1")
.executeUpdate();