我需要为我的工作自动化软件测试,我目前使用 groovy 来执行此操作。但是,我正在考虑将 Ruby 添加到我的曲目中。主要是因为我可以看到自己在未来从事 Rails 项目。
您认为相对熟练地使用 Ruby 编写脚本需要多长时间?我说的主要是使用 webdriver/webrat 在 DOM 中导航,并以编程方式进行文本/文件更改工作。
一个周末的紧张奉献。
说真的,这取决于您有多少时间以及您以前的经验是什么。如果您涉足过 Perl 或 Python,那么您可能会比以前使用过 Java 更容易掌握 Ruby。
取决于您对其他编程语言有多少经验。您应该能够在一个下午学习基本的 ruby 语法。然后学习测试库可能需要再花几天的时间来研究它们。您当然不会成为 ruby 专家,但您应该能够很快地编写一些测试脚本。
你可以从这里开始 - Ruby in 20 Minutes
那么也许可以去这里 - 17 个视频,涵盖基本的 Ruby 技术
如果你有编程经验,我会说 2 周专注于 ruby 会让你完成 99% 的工作...... ruby 区别于其他脚本语言的主要特点是它对迭代器的内在使用(你几乎从不为或 while 循环)和相关的代码块。一旦你熟悉了这些,剩下的就到位了。
一分钟学习……一生掌握。
在没有技术经验的情况下,我开始同时学习 ruby、html、css 等,我花了 2 年的时间才掌握了一些东西并知道实际发生了什么。当然,Rails 让这一切变得更快,如果您已经了解其他编程语言,您可以在 6 个月内掌握基础知识并发挥作用。
Ruby 有Nokogiri,它是一个出色的 HTML/XML 解析器。它同时支持 CSS 和 XPath 访问器,使得在已解析的 HTML 文件的 DOM 中导航变得非常容易。
建立在 Nokogiri 之上的是Mechanize,它基于 Perl 的 WWW::Mechanize。它使浏览网站页面、提取字段、填写表单和提交表单、跟踪 cookie 和会话等变得容易。因为 Mechanize 构建在 Nokogiri 之上,您可以访问底层 DOM 并使用相同的 CSS 和XPath 访问器。
Ruby 有几个不同的测试环境。Test::Unit 带有 Ruby 并且易于使用。还有 Autotest、RSpec、Shouda 和 Cucumber 等等。自动测试很好,因为它会在您修改文件时监视您的目录并运行测试,因此您可以立即知道是否破坏了某些内容。
我是从 Perl 和 Java 背景开始接触 Ruby 的,之前是 C/C++。对我来说,Ruby 就像是 Java 和 Perl 的孩子,因为它与两者有一些相似之处,但与此同时,这两种语言令人讨厌的事情在 Ruby 上得到了很好的回避。就好像 Ruby 是另外两个的合乎逻辑的增长或下一代。我认为这在一定程度上是事后诸葛亮的好处,也是 Matz 打算让 Ruby 成为程序员而不是机器的语言的意图。
我尝试将 Rails 与 Ruby 并行学习,但在 Rails 从 v1 更改为 v2 时发现了它。所有的书都过时且错误,大多数网站都是错误的,很难找到好的信息。最终,我意识到文档中的困惑,并在六个月内离开 Rails 并专注于 Ruby,每天在工作中使用它。我几乎完全开始使用它,因为我能够在它中比在 Perl 中更简洁地表达想法。我可以用 Perl 写得更简洁,但它不那么可读,这对我来说很重要,因为这有助于使代码可维护。
现在,几年后,我更喜欢 Ruby,而不是我曾经使用过的任何语言。我仍然使用 Perl 编程,但在工作中宣传 Ruby,并在我需要编写涉及数据库的东西时使用它,因为Sequel ,或者使用Rails、Sinatra或Padrino结合HAML为数据库编写 Web 前端。
取决于,您是否使用任何其他脚本语言?Ruby 对某些人来说非常直接。我发现很容易记住大多数常用方法名称。如果您在任何体面的程度上使用过其他语言,那么深入享受该语言的时间应该不会超过一周。如果这是您第一次编程,您需要牢牢掌握面向对象编程才能真正体会到它。