单元测试数据访问层

Kri*_*ast 7 unit-testing visual-studio

我一直在阅读单元测试项目的数据访问层.大多数选项归结为:

  • 使用专用的测试数据库,但在所有单元测试的最终阶段进行清理(或手动完成)
  • 使用数据库但不提交或只是回滚
  • 模拟数据库

在之前的项目中,我们曾经使用回滚方式,但我想更多地了解其他选项以及如何最好地执行这些选项.如果您有样品/文章/视频/ ...请分享.

sky*_*oot 4

您需要对一个项目进行两种类型的测试。单元测试和集成测试

单元测试测试项目的某一方面,而不依赖于数据访问和表示。对于单元测试,您将模拟数据库和用户依赖项注入,以将代码与数据提供者分离。这会带来更好的架构,并使您能够根据需要插入不同的数据提供程序。例如从 ADO.net 迁移到 nHibernate。

集成测试是测试整个系统并确保您的代码可以从数据库等获取正确数据的地方。对于集成测试,每个开发人员都应该在他们的工作站上有一个数据库副本,以便他们进行测试。您应该尝试自动创建和填充数据库,以便可以快速轻松地返回到数据库的良好副本。nantDBFit等工具将帮助您编写数据库创建脚本。

我不会使用中央数据库进行测试,因为其他开发人员可能会同时对其进行测试,并且它可能处于不好的状态,并且您可能会得到误报并花费很长时间尝试调试不属于问题的问题。问题。