我想用命中数据库的 NUnit 编写单元测试。我希望每个测试的数据库都处于一致状态。我认为交易可以让我“撤消”每个测试,所以我四处搜索并找到了 2004-05 年关于该主题的几篇文章:
- http://weblogs.asp.net/rosherove/archive/2004/07/12/180189.aspx
- http://weblogs.asp.net/rosherove/archive/2004/10/05/238201.aspx
- http://davidhayden.com/blog/dave/archive/2004/07/12/365.aspx
- http://haacked.com/archive/2005/12/28/11377.aspx
这些似乎解决了为 NUnit 实现自定义属性的问题,该属性构建了在每次测试执行后回滚数据库操作的能力。
这很棒但是...
- 这个功能是否存在于 NUnit 的某个地方?
- 在过去的 4 年中,这项技术是否得到了改进?
- 这仍然是测试数据库相关代码的最佳方法吗?
编辑:这不是我想专门测试我的 DAL,我更想测试与数据库交互的代码片段。对于这些测试是“无接触”和可重复的,如果我可以在每次测试后重置数据库,那就太棒了。
此外,我想将其简化为目前没有测试场所的现有项目。出于这个原因,我实际上无法为每个测试从头开始编写数据库和数据的脚本。