如何单元测试数据库依赖行为C#

Stu*_*ens 3 c# database unit-testing


我有一个与DB通信的C#应用​​程序.我想测试一些依赖于DB的函数.所以我想确保DB在每次测试运行之前都有一个初始状态.我使用NUnit来测试我的应用程序.有什么方法可以恢复DB的初始状态?
谢谢您的帮助!

Ste*_*ven 5

您没有单元测试与数据库的交互.这种类型的测试称为集成测试.您可以使用常用的测试工具(NUnit,MSTest等),但最好是在单独的项目中分离集成测试,使用专用的测试数据库,并在事务中运行这些测试(例如,使用TransactionScope)你回滚.这可确保数据不会发生变化,并且测试行为是可预测的,这非常重要.

如果可以的话,尝试设计您的应用程序,以便很容易伪造所有外部源(如数据库),以允许您运行(通常更快)单元测试.然而,这并不容易.特别是在处理尚未设计用于可测试性的现有应用程序时.在那种情况下,我发现集成测试是一个很好的开始.