您将在存储库类(数据访问层)的单元测试中添加什么?

Ven*_*emo 4 .net nhibernate unit-testing data-access-layer iqueryable

我想为我的数据访问层编写单元测试,以确保一切正常.问题是,我应该在测试中加入什么样的东西?

DAL是一个静态Repository类,它隐藏了底层(Fluent NHibernate)并通过一个公开东西给公众IQueryable.

我想过

  • CRUD(创建/检索/更新/删除)操作
  • 交易

关于DAL还有什么值得测试的吗?
提前感谢您的回答!

Dmi*_*try 12

使用集成测试而不是单元测试来测试存储库实现.隔离存储库实现(模拟ORM)几乎是不可能的.请看一下这个答案.集成测试使用真实的ORM结合真实或伪造(通常是内存中)数据库来执行以下操作:

  • 保存新对象
  • 更改 - >持久 - >恢复序列
  • 所有'查找'方法

基本上你测试的正确性:

  • 映射(即使你使用流利)
  • 标准
  • hql或sql查询

事务通常由应用程序层处理,而不是由存储库处理.您可能对此答案感兴趣.在存储库实现中封装IQueryable将使您的测试变得更加容易.