您会将什么放入存储库类(数据访问层)的单元测试中?

2024-05-06

我想为我的数据访问层编写一个单元测试,以确保其中的一切正常工作。 问题是,我应该把什么样的东西放入测试中?

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

我想过

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

DAL 还有什么值得测试的吗?
预先感谢您的回答!


存储库实现是通过集成测试而不是单元测试来测试的。隔离存储库实现(模拟 ORM)几乎是不可能的。请看一下这个answer https://stackoverflow.com/questions/7110981/the-repository-itself-is-not-usually-tested/7111748#7111748。集成测试使用真实的 ORM 与真实或虚假(通常在内存中)数据库相结合来执行以下操作:

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

本质上你测试了以下内容的正确性:

  • 映射(即使你使用 Fluent)
  • criteria
  • hql 或 sql 查询

事务通常由应用程序层处理,而不是存储库。您可能感兴趣this https://stackoverflow.com/questions/7322434/iqueryable-repositories-take-2/7323598#7323598回答。在存储库实现中封装 IQueryable 将使您的测试变得更加容易。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您会将什么放入存储库类(数据访问层)的单元测试中? 的相关文章

随机推荐