我经常测试NHibernate应用程序 测试几件事:
a)我已正确创建了映射
b)我映射了所有持久属性
c)我已经正确定义了级联
最重要的是,那是我的疑问 返回正确的结果。那是 我最常见的事情 想要测试
这些项目的含义是什么,以及如何测试?
答案 0 :(得分:1)
我会试着给你一个简短的答案,特别是考虑到你已经有Ayende的优秀帖子。他实际上并没有显示Blog对象的代码,相当于Blog表的数据库,或者该帖子中的映射,但是他们都需要存在才能使他的示例工作
a)要使映射正确,意味着NHib知道如何将Blog对象转换为Blog表再返回。因为他的单元测试持久化Blog条目然后从数据库加载它,所以您可以假设必须正确映射保持和加载的所有属性的映射。
b)这个实际上是在解决映射的“完整性”。在他的示例中,他使用博客对象的Title属性,因此需要持久化的任何其他属性都是他的单元测试的一部分。据推测,他的单元测试包括需要持久保存的完整博客属性集。
c)这是指相关表级联的行为。例如,如果您希望在保存博客条目时将Blog.Comments自动保留在评论数据库表中,则应该对其进行单元测试,这可能证明您可以在博客保存后检索评论(Ayende doesn'在这篇文章中显示了这样的测试)。
d)Ayende在这篇文章中没有显示查询测试,但如果他有一个用例来检索在指定日期范围内创建的博客,他可能会在一周的时间内对博客条目进行测试,然后证明他可以只选择在某个指定日期创建的那些。这看起来似乎是一个相对复杂的话题(而且确实如此!)但是从中获取神秘感的唯一方法就是弄脏你的手。
HTH,
Berryl