2009-08-24 55 views
0

我有一個存儲在數據庫中的主鍵。在創建類的新實例時,可以從HSQLDB數據庫獲取數據,也可以爲不在數據庫中的項目插入除主鍵以外的所有項目,並自動生成並返回到類以設置id屬性。然後我有一個getID()方法來檢索這個ID。使用自動生成的鍵爲數據庫項目創建JUnit測試

我想編寫一個JUnit測試,檢查以確保生成的ID是由getID()方法返回的內容,但我已經使用'CALL IDENTITY'查詢來檢索構造函數中的ID以及隨後的使用這返回0.確保生成的ID與getID()方法返回的ID相同的最佳方式是什麼?

回答

1

我真的會考慮不同的設計來測試類。在大多數情況下訪問數據庫確實不是一個單元測試。如果數據庫ID生成器工作並進行測試,那麼你不應該真的需要它來測試你的類。

假設你的類可以返回一個Id,那麼所有這些都應該重要,因爲你的類返回了在正確的時間放入它的id。

+0

我更試圖測試該類的getID()方法。它恰好如此,這個ID由數據庫生成,所以我不能簡單地檢查它是我告訴它實例化的。 – Haegin 2009-08-24 10:14:58

+1

@Haegin - 我個人沒有明確測試獲得者。我嘗試測試行爲(可能通過getter來看到)。如果你所有的'getID()'都在做它返回一個'private'字段,那麼測試並不值得寫,imho和你係統的行爲當然不應該依賴於持久化的對象。 – 2009-08-24 10:43:38