我需要一個想法/提示如何使用DbUnit來聲明由數據庫生成的ID(例如MySQL的自動增量列)。我有非常簡單的情況,但目前,我發現有問題:DbUnit:如何聲明生成的ID
2表格:main
和related
。 main.id
列是一個自動增量。相關表有一個外鍵:related.main_id
- >main.id
。在我的測試情況下,我的應用程序中插入多個條目到這兩個表,所以該數據集類似於此:
<dataset>
<main id="???" comment="ABC" />
<main id="???" comment="DEF" />
<related id="..." main_id="???" comment="#1 related to ABC" />
<related id="..." main_id="???" comment="#2 related to ABC" />
<related id="..." main_id="???" comment="#3 related to DEF" />
<related id="..." main_id="???" comment="#4 related to DEF" />
</dataset>
隨着訂單,插件將如何執行尚不清楚 - 我不能簡單地清除/截斷表在測試之前並預先使用預先定義的ID(例如,「ABC」條目將首先出現,因此其獲得ID 1
和「DEF」作爲第二 - 得到2
)。如果我這樣寫測試 - 這將是錯誤的 - 運氣有點可能會有效,而在其他情況下則不會。
有沒有一個乾淨的方式如何測試這種情況?因爲我仍然想斷言在DB中創建並正確鏈接了條目,而不僅僅是它們存在(如果我只是忽略自動增量列)。
http://www.dbunit.org/faq.html#identity – Najzero
@Najzero這是我認爲的問題 - 因爲它不清楚插入的順序是什麼,我不能覆蓋我的數據集中的身份,因爲他們根本不匹配,無所謂我會用......你的意思是別的嗎? – Laimoncijus
@Laimoncijus,你有沒有想過如何做到這一點? –