如何测试NHibernate应用程序:要测试的四个特定项目

时间:2010-10-08 19:37:01

标签: nhibernate

来自NHibernate Unit Testing

  

我经常测试NHibernate应用程序   测试几件事:

     

a)我已正确创建了映射

     

b)我映射了所有持久属性

     

c)我已经正确定义了级联

     

最重要的是,那是我的疑问   返回正确的结果。那是   我最常见的事情   想要测试

这些项目的含义是什么,以及如何测试?

1 个答案:

答案 0 :(得分:1)

我会试着给你一个简短的答案,特别是考虑到你已经有Ayende的优秀帖子。他实际上并没有显示Blog对象的代码,相当于Blog表的数据库,或者该帖子中的映射,但是他们都需要存在才能使他的示例工作

a)要使映射正确,意味着NHib知道如何将Blog对象转换为Blog表再返回。因为他的单元测试持久化Blog条目然后从数据库加载它,所以您可以假设必须正确映射保持和加载的所有属性的映射。

b)这个实际上是在解决映射的“完整性”。在他的示例中,他使用博客对象的Title属性,因此需要持久化的任何其他属性都是他的单元测试的一部分。据推测,他的单元测试包括需要持久保存的完整博客属性集。

c)这是指相关表级联的行为。例如,如果您希望在保存博客条目时将Blog.Comments自动保留在评论数据库表中,则应该对其进行单元测试,这可能证明您可以在博客保存后检索评论(Ayende doesn'在这篇文章中显示了这样的测试)。

d)Ayende在这篇文章中没有显示查询测试,但如果他有一个用例来检索在指定日期范围内创建的博客,他可能会在一周的时间内对博客条目进行测试,然后证明他可以只选择在某个指定日期创建的那些。

这看起来似乎是一个相对复杂的话题(而且确实如此!)但是从中获取神秘感的唯一方法就是弄脏你的手。

HTH,
Berryl