Springboot JPA中怎么给JUnit测试做准备数据

Springboot JPA在做JUnit测试时,怎么为每个测试方法做准备数据呢?

Junit测试时,每个方法的输入数据其实是不一样的,有些框架是支持为每个方法做一个测试数据导入的功能,不知道SpringBoot 在使用JPA时有没有类似的方法。
从网上查到的,基本都是直接在开发库上做测试,而数据使用rollback不提交即可。但是这种方法无法做到为没一个测试方法进行定制。灵活性以及扩展性比较差,如果我有2个方法需要测试的数据是互斥的,那么使用前面的方法就无法做到。
请问大家都是怎么实现的此类功能呢?如果是需要自行开发的话,请讲讲思路吧,谢谢各位大神了。

追加信息:我这个项目是使用了JPA进行数据库初始化的,就是表结构都使用JPA进行生成。之前在使用Mybatis时,自己使用flyway做了一个简易的数据初始化功能,但是这个功能在使用JPA时发生了冲突。即JPA生成了数据库之后,再使用flyway的clean等方法进行处理时,会把生成的数据表删除,下次初始化时,无法实现数据表的重复利用。

追加问题:Springboot jpa会自动生成表,能否在代码中手动调用生成表的逻辑?如果可以,怎么调用呢?


宝慕林4294392
浏览 2081回答 1
1回答

长风秋雁

推荐使用 Flywaydb,它有一个扩展模块可以用于测试。你可以编写脚本提供测试数据。它可以通过注解 @FlywayTest 实现每次执行之前清理数据库,并初始化测试数据。使用DDL建表比较好,小规模开发,弄的规则越多,文档越多,效率就会越低。所以,考虑提升一下效率。关于自动建表的方法,看下jpa的源码
打开App,查看更多内容
随时随地看视频慕课网APP