我有一个MVC应用程序以及一个单元测试项目,并参考了我的主项目。目前,涉及数据库工作的所有单元测试都在主应用程序数据库上执行。
最佳做法是创建副本数据库并将其存储在测试项目中吗?
当我测试创建新用户时,我不希望他们成为主数据库的一部分。 复制数据库是一个很好的解决方案还是足以删除我在拆解方法中创建的任何内容?
任何帮助都会很棒!
答案 0 :(得分:0)
我认为在主应用程序数据库上运行单元测试并不是一个好主意。您的单元测试将更加复杂,并且您可以获得相互依赖性问题,其中忘记从一个测试中删除数据会使另一个测试中的数据进一步突破。追踪和修复这些可能非常耗时。
您还可能最终使用旧的测试数据来污染数据库并增加其大小并需要定期清理。我已经使用了这两种方法,并发现为每个测试或测试套件创建一个新数据库更加可行且更易于维护。