Why RSpec?
Clear, concise and readable
Gems
.rspec
.rspec-core
.rspec-expectations
.rspec-mocks
.rspec-rails
Basics
Contexts
Describing methods
Running
rspec spec/
Formatters
echo --colort > .rspec
测试运行时附加参数
--colour 为测试输出加颜色
--format o 列出测试时间
--format html:test.html 输出测试文档到test.html
--diff 如测试失败,以diff模式查看期望结果和所得结果的不同
Documentation
rspec -f doc spec/
rspec -f Fuubar -f html -o specs.html spec/
Pending
Filtering by tag
Filtering by tag value
Setup and teardown
Expectations
Built-in matchers
Mocks and stubs
详情参考:
http://kerryb.github.com/iprug-rspec-presentation
rails 测试
rspec替换rails原有的Test:Unit
rails g rspec:install
.create .rspec
.create spec
.create spec/spec_helper.rb (该文件会在每个spec执行时被调用,设置了测试变量,并包含项目级别的RSpec配置项目,加载引用文件等等)
run: rake spec
run: rake spec:model
run: time rake spec:model
factory girl
gem 'factory gril', :git => 'git://github.com/thoughtbot/factory_girl.git', :branch => 'rails3'
add: spec/spec_helper.rb require 'factory_girl'
mkdir spec/factories
cucumber-Rails
It contains 2 generators - one for bootstrapping your Rails app for Cucumber, and a second one for generating features.
Installation
gem 'cucumber-rails'
gem 'capybara'
gem 'database_cleaner'
bootstrap your rails app
rails g cucumber:install --help
rails g cucumber:install
generating a cucumber feature
rails g cucumber:feature post title:string body:text published:boolean
rails g scaffold post title:string body:text published:boolean
rake db:migrate
rake cucumber
查看cucumber语言支持
cucumber --i18n help
cucumber --i18n zh-CN
中文写cucumber可以参考:
https://github.com/aslakhellesoy/cucumber/tree/master/examples/i18n/zh-CN
辅助工具:
会自动监视你的代码的改动,自动运行测试,所以你只要开一个窗口就好
autotest
run: autotest
或
watchr
需要自己手工写.watchr 或 watchr.rb文件
run: watch .watchr 或 watchr.rb
spork
让spec运行快起来
webrat or capybara
模拟浏览器
可以参考rails模板:
https://github.com/oldumy/rails3-app-template
测试相关:
自动生成测试文档
通过附加参数 --format specdoc 每次测试时在终端输出测试文档
spec spec/models/blog_spec.rb --format specdoc
也可以使用rake spec:doc在终端生成全部测试代码的文档
也可以使用--format html将测试文档输出到指定html文件
spec spec/models/blog_spec.rb --format html:test.html
生成覆盖率
利用rcov生成代码覆盖率
rake spec:rcov
会生成html格式的代码覆盖率文档
通过配置spec/rcov.opts来过滤其他代码覆盖率的干扰
--exclude "spec/*, gems/*, app/controllers/*, app/helpers/*, lib/*"
ps:
http://blog.adsdevshop.com/2010/06/06/tdd-on-the-bleeding-edge-with-ruby193-rails3-rspec-cucumber-autotest-and-factory-girl
http://mikbe.tk/2011/02/10/blazingly-fast-tests/
http://www.claytonlz.com/index.php/2010/03/zero-to-tested-with-cucumber-and-factory-girl/
http://www.iteye.com/topic/417899
http://www.anthonyeden.com/2010/11/testing-rest-apis-with-cucumber-and-rack-test/
guard
yajl
acts as api
lambda
acts_as_api
分享到:
相关推荐
英文新版:Agile Web Development with Rails, 4th Edition(For Rails 3.1 & 3.2) 内容简介 ...作为一位活跃的Rails开发者,他理解Rails。 汉森(David Heinemeier Hansson),是Rails框架的缔造者。
Rails 框架让应用程序的测试变得更容易,因此,Rails 应用也更能够得到充分的测 试。 Rails 应用是用Ruby 编写的,这是一种现代的面向对象脚本语言。Ruby 很简洁,却又不致简练 得难以理解。使用Ruby,你可以自然而...
它是Ruby,因此您可以理解和修改它以满足您的需求。 要求 经过最新的MRI Ruby 2.2 +,2.3 +,Rails 4. *和Rails 5. *的测试。 其他版本未经测试,但可能工作正常。 安装 将以下行添加到应用程序的Gemfile中: gem ...
通过API端点访问信息的理解 运行测试 运行bundle exec rspec以运行完整的测试套件。 此仓库的测试包括rspec,capybara,faker,Factorybot,shoa-matchers和simplecov,这些都可以在Gemfile找到。 分解为端到端测试...
教程和书籍常常侧重于搭建全栈开发环境和让测试能够进行所需要的“管件(plumbing)”(我综合运用了Angular、Rails、Bootstrap和Postgres)。但对于如何贯穿整个Web开发栈进行应用程序测试,却常常缺少指导。让我们...
acl9的基本目标是确保您的规则易于理解和测试-换句话说,acl9可以轻松确保您的权限正确无误。 安装 Acl9是,因此只需将其添加到您的Gemfile (请注意,需要3.2才能支持Rails 6+): gem 'acl9' , '~> 3.2' 您将...
您还将被问到一些测试您对Rails基础知识的问题。 (10分钟) 如果缺少任何要求,或者发现在理解上有明显的差距,请准备执行以下一项或全部操作: 提交改进的版本 再次见面进行另一个项目审查 不会发生什么: 您不会...
Shoulda可帮助您在Minitest和Test :: Unit下编写更易于理解,可维护的特定于Rails的测试。 快速链接 :loudspeaker: 概述 作为伞形宝石, shoulda宝石不包含任何自己的代码,而是带来了另外两个宝石的行为: 例如...
1.2.2 敏捷与测试驱动开发 3 1.2.3 Ruby on Rails 4 1.2.4 Node.js 4 1.3 ASP.NET MVC的关键优点 5 1.3.1 MVC的体系结构 5 1.3.2 可扩展性 5 1.3.3 HTML和HTTP上的严密控制 6 1.3.4 可测试性 6 1.3.5 强大的路由系统...
除了ASP.NET MVC框架本身,作者还介绍了Onion Architecture、领域驱动设计(DDD)、测试驱动开发(TDD)、控制反转(IoC)以及其它一些真实项目中经常用到的类库(和技术)。 本书章节如下: ASP.NET MVC框架入门 ...
尽早并经常根据成功标准进行测试。 我们的工作不是编程,,因此我们必须始终确保我们正在传递价值。 默认透明。 所有信息都应尽可能公开。 使用博客文章、Twitter、Basecamp、会议或任何最适合传播信息的方式。 ...
现在,Microsoft公司也加入了这个社区,ASP.NET MVC框架为应用程序开发人员提供利用成熟开发模式,开发易于理解、易于测试和易于维护的应用程序的新利器。《ASP.NET MVC实战》通过一个已经投产的代码营网站实例,...
为了这个目的,我们博取众框架之长处集中到Laravel中,这些框架甚至是基于Ruby on Rails、ASP.NET MVC、和Sinatra等开发语言或工具的。Laravel是易于理解并且强大的,它提供了强大的工具用以开发大型、健壮的应用。...
自2021年1月以来,我参加了Lighthouse Labs Web Developer Bootcamp,在那里我学习了JavaScript和Node.js,数据库和数据建模,HTML,CSS,软件体系结构的基本知识,并在开发过程中对JS,Ruby on Rails和测试进行
理解重构的核心原则以及为什么要这么做 • Recognize “bad smells” in your Ruby code 发现你 Ruby 代码中的 "bad smells" • Rework bad designs into well-designed code, one step at a time 一步一个脚印的...
意识>完全理解 打开消防栓:你不用全喝,但我会泡你 更轻松 第 1 章:索引 基本索引(bench - show seq vs idx) 唯一索引(比 rails - bench 快) 表达式索引(具有唯一性) 数学运算符和函数 电子邮件验证正则...
作者 Alex MacCaw 是一名Ruby/JavaScript 程序员,在开源社区中很有名望,是Spine框架的作者,同时活跃在纽约、旧金山和柏林的各大 Ruby/Rails 论坛。除了作为一名工程师,他还喜欢带着他的尼康D90和冲浪板环游世界...