我现在准备使用NHibernate来保持我的数据层访问。我使用DDD直到那一点,我使用假的单位测试和测试网站。
我知道我可以使用SchemaExport进行NHibernate具体存储库的单元/集成测试,但是如何生成用于测试站点的模式呢?
我应该在我的测试中创建一个特殊的类来创建模式并插入静态数据,还是应该在创建数据库时在网站启动时生成模式?
答案 0 :(得分:3)
我个人喜欢使用一个小型控制台应用程序来加载所有映射并执行SchemaExport,如下所示:
new SchemaExport(config).Execute(ddlScript => {
using (var writer = new StreamWriter(fileName, true))
{
writer.Write(ddlScript);
writer.Flush();
}
}, false, false);
此控制台应用程序作为构建脚本的一个步骤运行,然后由WiX接收DDL脚本文件,并包含在MSI包中(在安装时生成整个数据库)。
答案 1 :(得分:0)
作为一个简单的场景,你可能会错过使用单元测试。只需创建名为 CreateSchema 的单元测试,它将执行schemaexport。然后在运行其他测试之前运行它。
我有一个类似的问题here on STO
答案 2 :(得分:0)
对于完整的构建脚本,我会考虑Markus的建议,仅运行单元测试 我会把
<property name="hbm2ddl.auto">create-drop</property>
在您测试项目的app配置中 - 每次运行所有测试时,这将删除并重新创建您的模式。每个单元测试都可以添加测试所需的数据。