1. Cucumber
Cucumber is a tool that can execute plain-text documents as automated functional tests. Here is an example:
Feature: Search courses
In order to ensure better utilization of courses
Potential students should be able to search for courses
Scenario: Search by topic
Given there are 240 courses which do not have the topic "biology"
And there are 3 courses A,B,C that each have "biology" as one of the topics
When I search for "biology"
Then I should see the following courses:
| title |
| A |
| B |
| C |
用Cucumber来写客户验收测试的目的是明显的,就是让客户或者业务分析师能看懂甚至由他们来编写客户验收测试。
但在实际应用中,Cucumber真的能做到它想做的么?我个人是持怀疑态度的。理由有几点:
a.
Cucumber测试用例的编写没有那么简单和自由。Cucumber的本质是在文本和程序语言之间建立一种映射。这种映射限制了cucumber测试用
例的编写必须遵循某种规则,并且每个语句都需要有相应的程序语言实现。那么就是说,如果要让客户或者业务分析师脱离开发或者测试人员,独立并且无障碍地编
写测试用例,我觉得大多数人没有这个能力。既然如此,它已经脱离了它本身的初衷。
b. 用method chain本身就可以实现基本类似的测试用例,为什么要多此一举呢?在项目中,我们用了cucumber,实践证明cucumber用例的编写和维护是相当麻烦的。
c. 大多数业务人员或者客户根本不会看它一眼。实践表明,大多数业务人员或者客户根本不会看它一眼。他们更相信手工测试的结果,即使是测试人员也是如此。
所以,不推荐用这个东西。
2. RSpec
RSpec
is the original Behaviour Driven Development framework for Ruby.
Spec::Rails
: A Rails plugin that brings RSpec to Rails.
3. spec_helper
# use transactional for each test.
config.use_transactional_fixtures = true
# not only insert yaml data to database, but also created all objects. But we always disable it
# because of performance issue.
config.use_instantiated_fixtures = false
# default fixtures path
config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
4. rspec describe
rspec测试中的describe XXXController有什么作用?看了源代码后,用这种方式会使这个spec成文被测试类的子类。那么它其中的public方法你都可以尽情调用。
5. integrate_views
对于rspec controller测试,在必要的地方加上integrate_views,否则页面上的错误将被忽视。
比如,你想验证在某种条件下,页面上会出现某些text,可以用这种方法:
response.should include_text("")
6. rspec pending test
describe "test some thing" do
it "do some something" # it's a pending test with no implementation
end
分享到:
相关推荐
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
### Rails 4 Test Prescriptions — 构建健康代码库 #### 一、书籍概述与价值 《Rails 4 Test Prescriptions》是一本专注于教授开发者如何为Rails应用编写测试的书籍,作者Noel Rappin凭借多年的经验提炼出了一...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...
[适合] Rails :red_heart: Ansible [适合] Rails :red_heart: Ansible (有一点帮助) Rails部署 简单吧? 将应用程序放在服务器上。 捆绑宝石。 应用迁移。 重新启动服务。 Easy Rails部署 git push master ...
Rails 基本模板参考: : Ruby on Rails Gemfile:定义应用程序正在使用的库的文件bundle install:基于Gemfile,安装所有库每次修改 Gemfile 时都应该运行bundle install gem 是 Ruby 的库RubyGems.org 是一个查找和...
RailsConsole 工具包 :wrench: :toolbox: 可配置的 Rails 控制台助手更快地查找记录,添加自定义助手,将您的控制台寿命提高 100%。安装将此行添加到应用程序的 Gemfile 中: gem 'rails_console_toolkit' 然后生成...
webpack-rails, 将 web pack与你的Ruby on Rails 应用程序集成 不再维护webpack-rails 不再被维护。 有关详细信息,请参阅 #90. web pack-railsweb pack 为你提供了将 web pack集成到现有的Ruby on Rails 应用程序中...
Rails电子邮件预览 使用此Rails引擎在浏览器中预览电子邮件。 与Rails 4.2+兼容。 一封电子邮件评论: 所有电子邮件预览的列表: REP带有两个主题:一个简单的独立主题和一个使用的主题。安装加 到Gemfile: gem '...
Rails :: Dom :: Testing 这个gem负责比较HTML DOM并断言Rails应用程序中存在DOM元素。 assert_dom_equal通过assert_dom_equal和assert_dom_not_equal进行比较。 元素通过assert_dom , assert_dom_encoded , ...
Test the component parts of a Rails application, including the back-end model logic and the front-end display logic. With Rails examples, use testing to enable your code to respond better to future ...
Rails 4 Test Prescriptions 强调了测试对于构建稳定、可扩展的 Rails 应用的重要性,并提供了实用的指导来帮助开发者编写有效的测试。 #### 选择合适的测试策略 本书深入探讨了如何根据项目的需求选择最佳的测试...
Rails Docker示例该应用程序的Docker设置... 要仅重新启动应用服务器,请运行以下命令: docker-compose restart restarone_app 一次性运行测试套件: docker-compose run --rm restarone_test rails test:full_suite
Rails :: Controller :: Testing 这个gem将assigns给控制器测试的内容以及assert_template带回assigns控制器和集成测试的内容。 这些方法已中。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-...
rails_stack 食谱 TODO:在此处输入食谱说明。 例如,这本食谱使您最喜欢的早餐三明治。 要求 TODO:列出您的食谱要求。 确保包含本说明书对平台、库、其他说明书、软件包、操作系统等的任何要求。 例如 包裹 ...
Rails::Cache::Extended 这允许为记录集合生成自动过期的缓存键 安装 将此行添加到应用程序的 Gemfile 中: gem 'rails-cache-extended' 然后执行: $ bundle 或者自己安装: $ gem install rails-cache-...
允许您使用为Rails应用程序的前端供电。 是将前端工具像Ruby一样进行编程,纯属喜悦! :smiling_face_with_heart-eyes: 或在运行的检查。 产品特点 :high_voltage: :light_bulb: 即时服务器启动 :high_voltage: ...
Rails数据库方案 Rails数据库模式的Autocomplete +提供程序。 特征 自动完成活动记录 根据当前上下文打开模式文件 设定值 将Rails语法设置为默认语法。 " * " : core : customFileTypes : " source.ruby.rails...
如果您在非Rails应用程序中需要类似的功能,请考虑直接使用(这是处理内幕消毒的原因)。 安装 将此行添加到您的应用程序的Gemfile中: gem 'rails-html-sanitizer' 然后执行: $ bundle 或将其自己安装为: $...
带有Flux(Alt)的React Rails截屏博客文章: : YouTube视频: : 这是截屏视频的代码,显示了如何将和集成到您的rails应用程序中。 我只使用不带npm的链轮,因此设置非常简单。 Alt( )React Rails( )Lodash( ...