【问题标题】:Testing nHibernate mappings测试 nHibernate 映射
【发布时间】:2009-05-05 03:35:46
【问题描述】:
我刚刚开始了一个使用 nHibernate 和 Fluent 进行映射的新项目。架构师给我发了一个数据库,我从中生成了数百个实体类和相应的 Fluent 映射文件。我知道这不是理想的 DDD 做事方式,但生活很少是理想的。
我想要做的是测试所有映射是否正确、列映射是否正确、OneToMany、ManyToMany 等。是否有一些自动化或简单的方法可以做到这一点?我考虑过编写一个简单的存储库,从每个实体加载记录并确保不引发异常,但大多数表中还没有数据。
【问题讨论】:
标签:
c#
unit-testing
nhibernate
fluent-nhibernate
【解决方案2】:
为了测试 ORM 映射,我使用的一种节省了工作时间的策略涉及在单元测试中使用行测试方法,例如 MBUnit 或 NUnit 中的 RowTest 属性。这将使您不必为不同的行值编写单独的单元测试。请观看this 网络广播以快速开始。
关于数据库,您可以遵循 2 种策略:
如果您需要在特定的数据库实例或引擎中进行测试,您可以使用事务并确保在断言之后回滚对数据库的所有写入。
如果您可以使用自己的实例和引擎,则可以使用 SQLLite 或 SQL CE 作为仅用于单元测试的数据库。由于此数据库仅用于单元测试,因此您可以在每次运行单元测试时创建一个全新的数据库。