php - Ruby/Rails 是否需要比 PHP 应用程序更多的单元测试?

标签 php ruby-on-rails ruby unit-testing

我没有像在 ruby​​/rails 领域看到/读到的那样在 PHP 市场上发现单元测试插入。

在 ruby​​/rails 中是否可以像在 php 中一样容易地不进行单元测试,或者 ruby​​ 太容易弯曲和易碎以至于它“更”建议在 ruby​​ 中进行测试而不是在 php 中进行测试?

这意味着有像 vBulletin 这样的大型代码库,据我所知,它们没有进行单元测试。

我希望你明白我在这里问的是什么,不是测试的优缺点,或者是否应该测试,而是一种语言是否比另一种语言更需要测试?也许很容易编写错误代码,或者在重构等过程中中断。

最佳答案

tl;dr PHP/vBulletin/Mambo 在 TDD 成为主流之前就开始了

PHP 允许犯与 Ruby 一样的错误。在 Java/C# 中,如果您在编译时做了一些奇怪的事情,编译器有时会报错,而 PHP/Ruby 只会在运行时这样做。因此,如果您要将 Ruby 与 Java 进行比较,我可能回答说我认为更有必要为 PHP/Ruby 编写单元测试。不管您使用什么语言,我仍然认为单元测试很重要。

关于您的发现:vBulletin(v3 开发于 2002 年 12 月开始)和 Mambo 几乎与 jUnit (2000) 一样古老。单元测试(据我所知)在 2000 年左右兴起。SimpleTest/PHPUnit 出现于 2003/2004 年。所以 Mambo/vBulletin 的开发者当时并没有使用 TDD。编写代码的结构不会让以后添加测试变得容易。

为了不让任何 PHP 开发人员蒙羞,PHP 被脚本小子、伪程序员和初学者(包括我)淹没了。每个人都从头开始,编写自己的 CMS。引用应用程序是在网络上找到的一些片段。我假设大部分 PHP 开发社区从未听说过单元测试或理解它的好处。

Ruby 的大肆宣传比 PHP(大约 2000 年)晚得多(大约 2007 年)。它与许多哲学捆绑在一起(“什么是好的/可读/漂亮的代码?”,“应该如何编码?”)。编写测试在某种程度上是这种哲学的一部分。

大多数关于 Ruby 的书籍都包含有关单元测试的部分,解释为什么它是好的和必要的。此外,Rails 会自动为您生成一组(空的)测试。我们一直鼓励您编写测试 - 很难不这样做。

关于php - Ruby/Rails 是否需要比 PHP 应用程序更多的单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4555919/

相关文章:

ruby-on-rails - Ruby on Rails 无法使用 CoffeeScript 和 AJAX 发送获取请求

php - PHP 文档中的参数,方括号?

python 导入文件时 php exec 失败

ruby-on-rails - 为什么我不能解析保存到 Ruby 变量中的日期字符串?

ruby-on-rails - 在同一台服务器上使用 RVM 和 Passenger 部署 Ruby 1.9.2 和 1.8.7 的最佳方式

Ruby 在 WHERE 子句中使用具有多个选项的查询

ruby-on-rails - 安装 Ruby gems 时的开发人员工具问题

php - <?php echo tep_image 使这个响应

php - 在 Laravel 8 中运行多个 PHPUnit 测试时出错

javascript - Rails Assets 管道挂起