上下文是以下我们拥有一个MVC web应用程序,其中大量遗留代码在数据库中。 (我们不允许将此代码迁移到服务器端) 对于我们的持久性存储,我们使用存储库模式。数据库中的功能测试和遗留代码
我们的客户想要在应用程序中添加新功能,所以我们显然在服务器端添加了所有新的业务逻辑。
现在我们已经是关于其运行的每一个日子慢我们功能测试套件的问题。
主要原因是我们从浏览器使用硒到数据库运行测试(端到端)。
我想,如果人们已经全成使用下面的其他战略要知道:
1.摆脱UI
运行,而不必具有在控制器级别测试通过浏览器和Web服务器。为了弥补通过UI的测试失败,我们将编写javascript单元测试或MVC Views单元测试。
2.摆脱DB
写我们的代码库的“InMemory”版本,以便应用程序可以在内存中完整地运行,这应该也加快测试套件,因为我们不会打磁盘和更少的网络。为了弥补,我们会为我们的数据库存储库编写集成测试。我认为这样做1 + 2策略将产生最大速度执行,我们将测试真正重要的东西(控制器,业务层,域实体和各种助手作为一个整体)(我认为,UI和数据库作为“细节”)。
现在,问题是,事实上,因为数据库有很多遗留代码,我不知道是否足够安全,只依靠这些东西的集成测试,并保持数据库脱离功能测试套件。无论如何,我是否应该将其留在套件中?还是很好?
任何经验或建议将不胜感激!
我的一些调查结果如下:
- 连续交货书建议,这些测试应该永远是他们也说,不是每个人都同意端到端的,即使他们是缓慢的操作(虽然在那)
- 叔叔鲍勃,在我的理解,就1 + 2战略达成一致,但我不知道他是否会认为与遗留代码的数据库。