2009-07-15 51 views
1

我現在準備好使用NHibernate來堅持我的數據層訪問。直到那時我才使用DDD,並使用假單元測試和測試網站。使用NHibernate爲生產生成模式的最佳實踐

我知道我可以使用SchemaExport對我的NHibernate具體存儲庫進行單元/集成測試,但是應該如何生成用於測試站點的模式?

我應該在創建模式並插入靜態數據的測試中創建一個特殊類,或者如果數據庫未創建,我應該在啓動站點時生成模式嗎?

回答

3

我個人喜歡用它加載所有映射和下面執行的SchemaExport一個小型控制檯應用程序:

new SchemaExport(config).Execute(ddlScript => { 
    using (var writer = new StreamWriter(fileName, true)) 
    { 
     writer.Write(ddlScript); 
     writer.Flush(); 
    } 
}, false, false); 

該控制檯應用程序運行,爲的步驟構建腳本和DDL腳本文件會被WiX提取出來幷包含在MSI包(它會在安裝時生成整個數據庫)中。

0

作爲一個簡單的場景,你可能會錯過使用單元測試。只需創建名爲CreateSchema的單元測試,它將執行schemaexport。然後在運行其他測試之前運行它。

我有一個類似的問題here on STO

+0

我的問題是不是爲測試而是爲生產站點創建模式。 – 2009-07-16 12:19:33

0

爲您全方位構建腳本我與馬庫斯的建議去,只是在運行單元測試 我把

<property name="hbm2ddl.auto">create-drop</property>

在應用程序配置你的測試項目 - 這將下降,每次運行所有測試時重新創建您的模式。每個單元測試都可以添加它需要測試的數據。