當我嘗試在SQL Server中測試crud操作時,我一直面臨一個非常令人沮喪的問題。 請注意,我使用了hibernate,dbunit,ms sql server2008r2和jpa的組合。Java dbUnit CRUD測試錯誤
因此,正如我之前提到的,我嘗試使用dbunit來測試CRUD操作。在dbunit的文檔之後,我創建了一個XML文件,其中包含必需的記錄,另一個文件在操作結束時進行比較。 在我的情況下,最初的xml只包含兩行,這也代表了我的實體之間的關係。 XML初始
預期結果
<xml>
<A id="1" name="nameA"/>
<B id="1" name="nameB" A_id="1">
<B id="2" name="nameBB" A_id="1">
</xml>
需要注意的是,我們通過默認設置只有乾淨的刀片戰略下的設置操作,而沒有定義銷燬操作,是沒有的。
因此,當我嘗試在表b中插入另一個記錄並引用表A時,如果數據庫是乾淨的,它就會正常工作。但是,每次我們嘗試重新執行相同的測試時,都會由於違反外鍵約束而發生錯誤。 理論上講,dbunit每次插入從xml檢索到的數據時,都應該(按照乾淨插入策略)按相反順序刪除,然後插入記錄。但是,如前所述,它不會刪除指示違反密鑰的記錄,這會導致我認爲相反的順序並不真正起作用。
任何想法? TNX提前
你能告訴你所使用的測試用例設置的代碼? –