我有一个与数据库通信的 C# 应用程序。我想测试一些依赖于数据库的功能。所以我想确保数据库在每次测试运行之前都有一个初始状态。我使用 NUnit 来测试我的应用程序。有什么方法可以恢复DB的初始状态?
感谢您的帮助!
您不对与数据库的交互进行单元测试。这种类型的测试称为集成测试。为此,您可以使用常用的测试工具(NUnit、MSTest 等),但最好是将集成测试放在单独的项目中,使用专用的测试数据库,并在事务中运行这些测试(例如,使用交易范围 http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx)你回滚。这可以确保数据不会改变并且测试的行为是可预测的,这一点非常重要。
如果可以的话,尝试以这样的方式设计应用程序,即可以轻松伪造所有外部源(例如数据库),以允许您运行(通常更快)单元测试。然而这并不容易。特别是在处理尚未设计为可测试性的现有应用程序时。在这种情况下,我发现集成测试是一个很好的开始方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)