我现在准备好使用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