我有一个与数据库通信的 C# 应用程序。我想测试一些依赖于数据库的功能。所以我想确保 DB 在每次测试运行之前都有一个初始状态。我使用 NUnit 来测试我的应用程序。有什么方法可以恢复数据库的初始状态?
感谢您的帮助!
最佳答案
您不需要对与数据库的交互进行单元测试。这种类型的测试称为集成测试。您可以为此使用常用的测试工具(NUnit、MSTest 等),但最好是在单独的项目中分离集成测试,使用专用的测试数据库,并在事务中运行这些测试(例如,使用 TransactionScope ) 你回滚。这可确保数据不会更改并且您的测试行为是可预测的,这一点非常重要。
如果可以,请尝试以易于伪造所有外部源(例如数据库)的方式设计您的应用程序,以允许您运行(通常更快)单元测试。然而这并不容易。特别是在处理尚未设计为可测试性的现有应用程序时。在那种情况下,我发现集成测试是一个很好的开始方式。
关于c# - 如何单元测试数据库依赖行为 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4212426/