2009-05-05 181 views
3

我剛剛開始使用nHibernate和Fluent進行映射的新項目。架構師給我發送了一個數據庫,我從中生成了數百個實體類和相應的Fluent映射文件。我知道這不是理想的DDD做事方式,但生活很不理想。測試nHibernate映射

我想要做的就是測試所有的映射是否正確,列映射正確,OneToMany,ManyToMany等。是否有一些自動或簡單的方法來做到這一點?我曾考慮過編寫一個簡單的存儲庫來加載每個實體的記錄,並確保沒有引發異常,但大多數表中沒有數據。

回答

4

查看Fluent NHibernate中的PersistenceSpecification。這並不完美,但它很好地處理了很多簡單的案例。

+0

謝謝,我發現這一點,並試圖讓它現在工作。 – Craig 2009-05-05 10:34:22

0

爲了測試ORM映射,我已經使用了一種節省工作時間的策略,它涉及在單元測試中使用行測試方法,例如MBUnit或NUnit中的RowTest屬性。這將使您無需爲獨特的行值編寫單獨的單元測試。看看this網絡直播快速啓動。

關於數據庫,您可以遵循2種策略: 如果您需要在特定的數據庫實例或引擎中測試,則可以使用事務並確保在斷言後回滾數據庫的所有寫入。 如果您可以使用自己的實例和引擎,則可以使用SQLLite或SQL CE作爲僅測試數據庫的單元測試。由於此DB僅用於單元測試,因此每次運行單元測試時都可以創建一個全新的DB。