我現在準備好使用NHibernate來堅持我的數據層訪問。直到那時我才使用DDD,並使用假單元測試和測試網站。使用NHibernate爲生產生成模式的最佳實踐
我知道我可以使用SchemaExport對我的NHibernate具體存儲庫進行單元/集成測試,但是應該如何生成用於測試站點的模式?
我應該在創建模式並插入靜態數據的測試中創建一個特殊類,或者如果數據庫未創建,我應該在啓動站點時生成模式嗎?
我現在準備好使用NHibernate來堅持我的數據層訪問。直到那時我才使用DDD,並使用假單元測試和測試網站。使用NHibernate爲生產生成模式的最佳實踐
我知道我可以使用SchemaExport對我的NHibernate具體存儲庫進行單元/集成測試,但是應該如何生成用於測試站點的模式?
我應該在創建模式並插入靜態數據的測試中創建一個特殊類,或者如果數據庫未創建,我應該在啓動站點時生成模式嗎?
我個人喜歡用它加載所有映射和下面執行的SchemaExport一個小型控制檯應用程序:
new SchemaExport(config).Execute(ddlScript => {
using (var writer = new StreamWriter(fileName, true))
{
writer.Write(ddlScript);
writer.Flush();
}
}, false, false);
該控制檯應用程序運行,爲的步驟構建腳本和DDL腳本文件會被WiX提取出來幷包含在MSI包(它會在安裝時生成整個數據庫)中。
作爲一個簡單的場景,你可能會錯過使用單元測試。只需創建名爲CreateSchema的單元測試,它將執行schemaexport。然後在運行其他測試之前運行它。
我有一個類似的問題here on STO
爲您全方位構建腳本我與馬庫斯的建議去,只是在運行單元測試 我把
<property name="hbm2ddl.auto">create-drop</property>
在應用程序配置你的測試項目 - 這將下降,每次運行所有測試時重新創建您的模式。每個單元測試都可以添加它需要測試的數據。
我的問題是不是爲測試而是爲生產站點創建模式。 – 2009-07-16 12:19:33