unit-testing - 您如何对远程托管的 Web 应用程序进行单元测试?

标签 unit-testing web-applications tdd

我熟悉 TDD,并在我的工作场所和自制的网络应用程序中使用它。然而,每次我在 Web 应用程序中使用 TDD 时,我都拥有对 Web 服务器的完全访问权限。这意味着我可以更新服务器,然后直接从服务器运行我的单元测试。我的问题是,如果您使用的是第三方网络托管服务商,您如何对它们运行单元测试?

您可能会争辩说,如果您的应用设计良好且构建过程合理且自动化,则无需在生产服务器上运行单元测试,但就我个人而言,我喜欢安心,因为知道一切都还在“重大更新后的“绿色”。


对于回答“部署前先测试一下”和“你们没有暂存服务器吗?”的每个人,我明白您的意思。我确实有一个登台服务器和一个 CI 进程设置。我的单元测试确实运行了,我确保它们在更新到生产之前都通过了。

我意识到在一个完美的世界里我不会关心这个。但我以前见过这种情况。如果某个文件未更新或未运行 SQL 脚本,则在运行单元测试时效果会立即显现,但如果不进行单元测试,可能会在相当长的一段时间内被忽视。

我在这里要问的是,如果只是为了满足我自己的强制性欲望,是否有任何方法可以在我无法在其上安装应用程序或远程安装应用程序的服务器上运行单元测试(例如,我只会拥有的服务器) FTP 访问以更新文件)?

最佳答案

我想我可能不得不争辩说,在生产服务器上运行单元测试并不是 TDD 的真正组成部分,因为从技术上讲,当您部署到生产环境时,您就已经过了“开发”阶段。

我是 TDD 的坚定支持者,当我向客户宣扬好处时,我经常发现自己在说“你不能一半采用 TDD,要么全有要么全无”

您可能应该拥有某种形式的自动化测试,您在部署“之后”执行这些测试,但这些不是 TDD 的一部分。

也许你应该再看看你的过程。

关于unit-testing - 您如何对远程托管的 Web 应用程序进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20511/

相关文章:

Python Singletons - 你如何在你的测试平台中摆脱(__del__)它们?

javascript - 如何在 JSF 中实现复制到剪贴板按钮?

ruby-on-rails - 从 Rails 应用程序运行 shell 脚本,无论最终用户如何,它都能正常工作吗?

ruby - 如何使用 cucumber 在场景之间共享状态

c# - EF 中的 SaveChanges() 会导致插入未添加的对象吗?

java - 在 Java 中测试使用另一个比较器的比较器的最佳方法是什么?

ruby-on-rails - 如何测试 facebook 签名请求

javascript - React/JestJS/ enzyme : How to test for ref function?

javascript - 除了在开发期间进行测试之外,在登台服务器上进行测试还有哪些好处?

jquery - 如何使用一个 jQuery 函数更改两个独立元素内的文本?