1
我在我的應用(使用postgres)中使用了默認id生成策略,並且我的所有其他表中都有一個唯一的序列表,所以id必須是在我的表空間獨特。在Grails單元測試中使用的id生成策略是什麼
但是,我在單元測試中沒有相同的行爲,因爲我在不同的表中有相同的ID,我猜測Grails在測試中使用了不同的策略? (每個表中序列?)
感謝
我在我的應用(使用postgres)中使用了默認id生成策略,並且我的所有其他表中都有一個唯一的序列表,所以id必須是在我的表空間獨特。在Grails單元測試中使用的id生成策略是什麼
但是,我在單元測試中沒有相同的行爲,因爲我在不同的表中有相同的ID,我猜測Grails在測試中使用了不同的策略? (每個表中序列?)
感謝
默認的Grails回滾在單元/集成測試DB交易。這可能解釋奇怪的行爲。
您可以嘗試通過在Test類中明確指出單元測試爲非事務性的。
static transactional = false
grails在測試時使用測試環境,請參閱DataSource.groovy。默認情況下,數據庫位於內存h2中,除非您將其更改爲其他內容。 Postgres中的序列在這裏不適用於h2。 – dmahapatro
補充:如果Postgres將永遠是您的prod數據庫,我建議您使用另一個Postgres基礎來進行集成測試,這將使您能夠在生產之前識別可能的問題。 –