测试nHibernate映射

时间:2009-05-05 03:35:46

标签: c# unit-testing nhibernate fluent-nhibernate

我刚刚开始使用nHibernate和Fluent进行映射的新项目。架构师给我发了一个数据库,我从中生成了数百个实体类和相应的Fluent映射文件。我知道这不是理想的DDD做事方式,但生活很少是理想的。

我想要做的是测试所有映射是否正确,列映射是否正确,OneToMany,ManyToMany等。是否有一些自动或简单的方法来执行此操作?我考虑过只编写一个简单的存储库来加载来自每个实体的记录,并确保不会引发任何异常,但是大多数表中还没有数据。

2 个答案:

答案 0 :(得分:5)

查看Fluent NHibernate中的PersistenceSpecification。它并不完美,但很好地处理了很多简单的案例。

答案 1 :(得分:0)

为了测试ORM映射,我使用的一个策略是节省了数小时的工作,包括在单元测试中使用行测试方法,比如MBUnit或NUnit中的RowTest属性。这将使您免于为不同的行值编写单独的单元测试。看看this网络直播,快速入门。

关于数据库,您可以遵循以下两种策略: 如果需要在特定的数据库实例或引擎中进行测试,则可以使用事务并确保在断言后回滚到DB的所有写入。 如果您可以使用自己的实例和引擎,则可以使用SQLLite或SQL CE作为单元测试数据库。由于此DB仅用于单元测试,因此每次运行单元测试时都可以创建一个全新的DB。