【发布时间】:2018-06-22 08:06:39
【问题描述】:
上下文:
假设您有 2 个分支,开发分支和生产分支。 您对 dev 分支进行单元测试,它通过,然后将 dev 分支与生产分支合并。 (我假设从服务器端开始的端到端测试。)
问题
您是否应该对生产分支运行端到端测试,以确保代码也可以在生产环境中运行?
如果答案是肯定的,那么如何避免破坏生产分支中的数据库状态?例如,我不认为有一天有人可能会编写一个错误的测试来创建/更新/删除不应该的东西。
如果答案是否定的,您如何知道您的代码是否确实在生产环境中工作?我猜是简单的烟雾测试?
编辑
我之前误用了单元测试这个词。我将其替换为端到端测试。
【问题讨论】:
-
好吧,如果它是真正的单元测试,那么测试应该完全独立于数据库,甚至不需要访问数据库即可运行
-
我既不会在生产环境中进行测试,也不会期望单元测试会写入数据库。
-
我所有的单元测试都可以在我的本地机器上运行,甚至不需要互联网连接
-
您可能将单元测试与集成测试混淆了。单元测试应该是在不需要任何外部依赖项(如数据库或 API)的情况下测试功能 - 如果需要,可以模拟这些功能,以便您可以测试组件对不同响应的反应。另一方面,集成测试将允许您与实际数据库端到端运行。一种方法是拥有一个单独的环境,其中部署了所有依赖项,然后首先从那里部署生产分支的代码。
标签: unit-testing production-environment dev-to-production