在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Java/ Springboot JPA中怎么給JUnit測(cè)試做準(zhǔn)備數(shù)據(jù)

Springboot JPA中怎么給JUnit測(cè)試做準(zhǔn)備數(shù)據(jù)

Springboot JPA在做JUnit測(cè)試時(shí),怎么為每個(gè)測(cè)試方法做準(zhǔn)備數(shù)據(jù)呢?

Junit測(cè)試時(shí),每個(gè)方法的輸入數(shù)據(jù)其實(shí)是不一樣的,有些框架是支持為每個(gè)方法做一個(gè)測(cè)試數(shù)據(jù)導(dǎo)入的功能,不知道SpringBoot 在使用JPA時(shí)有沒(méi)有類似的方法。
從網(wǎng)上查到的,基本都是直接在開(kāi)發(fā)庫(kù)上做測(cè)試,而數(shù)據(jù)使用rollback不提交即可。但是這種方法無(wú)法做到為沒(méi)一個(gè)測(cè)試方法進(jìn)行定制。靈活性以及擴(kuò)展性比較差,如果我有2個(gè)方法需要測(cè)試的數(shù)據(jù)是互斥的,那么使用前面的方法就無(wú)法做到。
請(qǐng)問(wèn)大家都是怎么實(shí)現(xiàn)的此類功能呢?如果是需要自行開(kāi)發(fā)的話,請(qǐng)講講思路吧,謝謝各位大神了。

追加信息:我這個(gè)項(xiàng)目是使用了JPA進(jìn)行數(shù)據(jù)庫(kù)初始化的,就是表結(jié)構(gòu)都使用JPA進(jìn)行生成。之前在使用Mybatis時(shí),自己使用flyway做了一個(gè)簡(jiǎn)易的數(shù)據(jù)初始化功能,但是這個(gè)功能在使用JPA時(shí)發(fā)生了沖突。即JPA生成了數(shù)據(jù)庫(kù)之后,再使用flyway的clean等方法進(jìn)行處理時(shí),會(huì)把生成的數(shù)據(jù)表刪除,下次初始化時(shí),無(wú)法實(shí)現(xiàn)數(shù)據(jù)表的重復(fù)利用。

追加問(wèn)題:Springboot jpa會(huì)自動(dòng)生成表,能否在代碼中手動(dòng)調(diào)用生成表的邏輯?如果可以,怎么調(diào)用呢?

回答
編輯回答
赱丅呿

推薦使用 Flywaydb,它有一個(gè)擴(kuò)展模塊可以用于測(cè)試。你可以編寫腳本提供測(cè)試數(shù)據(jù)。它可以通過(guò)注解 @FlywayTest 實(shí)現(xiàn)每次執(zhí)行之前清理數(shù)據(jù)庫(kù),并初始化測(cè)試數(shù)據(jù)。

2018年4月29日 11:31