2009-05-05 124 views
3

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

我想要做的就是测试所有的映射是否正确,列映射正确,OneToMany,ManyToMany等。是否有一些自动或简单的方法来做到这一点?我曾考虑过编写一个简单的存储库来加载每个实体的记录,并确保没有引发异常,但大多数表中没有数据。

回答

4

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

+0

谢谢,我发现这一点,并试图让它现在工作。 – Craig 2009-05-05 10:34:22

0

为了测试ORM映射,我已经使用了一种节省工作时间的策略,它涉及在单元测试中使用行测试方法,例如MBUnit或NUnit中的RowTest属性。这将使您无需为独特的行值编写单独的单元测试。看看this网络直播快速启动。

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