我想为我的Rails 3应用程序编写一些自动测试。
我想知道如何开始。
我听说过Selenium / RSpec / Cucumber,我想还有更多的选择。
这些测试框架有哪些优点/缺点?哪个有最好的文档?哪一个在Ruby世界中最受欢迎?而在整个行业中呢?
我掌握了如何编写测试的一般知识。我只是想学习用于测试Rails应用程序的适当测试框架。
请帮我决定启动哪个测试框架。
答案 0 :(得分:2)
Selenium 是一个自动测试用户界面的框架。 Selenium脚本启动浏览器窗口,转到网页并操纵页面元素。
RSpec 和黄瓜是所谓“行为驱动开发(BDD)”的工具。 BDD是一个开发过程,您可以在其中描述单独的功能,以及一些检查此功能的脚本(可以是Selenium脚本)。 RSpec和Cucumber基本上连接这两个,因此当您运行测试脚本时,您会看到以简单语言编写的功能列表及其测试状态。
Selenium脚本可以用number of languages编写,而Cucumber脚本使用Ruby。所有这些文档都可以,但是需要一些编程语言知识。
开始链接:
答案 1 :(得分:2)
我不会说那里有一套最好的测试工具;社区肯定没有以任何方式决定任何标准。
我强烈推荐来自实用程序员的The RSpec Book - 本书的大部分内容都是使用Cucuumber,RSpec和Selenium等浏览器模拟器进行Rails测试。这是对Rails中您将遇到的不同情况的全面概述,以及您可能希望在每种情况下使用的工具。
答案 2 :(得分:2)
有许多工具可用于从许多不同方面测试rails和其他Web应用程序。但是,如果您不熟悉测试我强烈建议您在开始使用其他工具之前先学习Rails自己的测试框架。
学习,以及后来掌握,一个测试框架使得将来更容易理解其他框架的优缺点,并使它们协同工作。
您可以从测试以下事项开始:
我看到许多测试工作失败,但我从未看到它们失败,因为他们选择了错误的工具/框架。他们失败是因为他们不知道如何掌握他们使用的工具,并且对于测试的基础知识有足够的了解。
在此处阅读有关Rails测试的更多信息 http://guides.rubyonrails.org/testing.html
手动探索性测试
尽管我喜欢自动化测试,但它是恕我直言,而不是手动测试的替代品。主要原因是自动化只能执行它所说的内容,并且只验证它被通知查看为通过/失败的内容。人类可以利用它的智能来发现错误并提出在测试其他东西时出现的问题
在我的另一个答案中阅读更多关于混合自动和手动测试的信息:
What test methods do you use for developing websites?
答案 3 :(得分:1)
最简单的入门方法是使用TestUnit。当您使用脚手架生成模型,视图,控制器时,它将自动为您生成包含测试环境设置文件和测试的测试文件夹,或者您可以使用rails生成器向现有模型添加测试。
然后是阅读关于TestUnit的文档的问题,其中有相当多的文档。
下一步,我个人的偏好是使用RSpec而不是Cucumber - 我发现Cucumber很难维护,尽管你的老板可以读取测试很棒,但我发现大多数老板不喜欢我真的很想阅读或参与测试,这使得开发非常耗时并且非常“繁琐” - 许多小文本散布在各种文件中。
如果您想直接进入并开始使用RSpec for Rails,那么我建议使用Rspec-Rails,其中包含许多帮助器,用于断言应用程序的正确行为。
我可以继续,但你已经要求'我从哪里开始' - 有两个好地方。
答案 4 :(得分:1)
有许多框架可以帮助您测试ruby / rails代码......最棒的是Ruby的动态特性为您提供了很大的灵活性。
我喜欢使用RSpec来测试我的代码的内部,并使用Cucumber来测试应用程序的行为。通常,RSpec将测试模型和方法,而Cucumber通过浏览器测试用户交互。
我强烈推荐这个实用的程序员电子书BDD using RSpec on Cucumber。