`
zhou.xingbo
  • 浏览: 52345 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

rails3测试理解

阅读更多

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

 

 

 

分享到:
评论

相关推荐

    Web开发敏捷之道-应用Rails进行敏捷Web开发(第3版).pdf

    英文新版:Agile Web Development with Rails, 4th Edition(For Rails 3.1 & 3.2) 内容简介 ...作为一位活跃的Rails开发者,他理解Rails。 汉森(David Heinemeier Hansson),是Rails框架的缔造者。

    Web 开发敏捷之道(应用Rails 进行敏捷Web 开发第三版)

    Rails 框架让应用程序的测试变得更容易,因此,Rails 应用也更能够得到充分的测 试。 Rails 应用是用Ruby 编写的,这是一种现代的面向对象脚本语言。Ruby 很简洁,却又不致简练 得难以理解。使用Ruby,你可以自然而...

    crono:Rails的基于时间的后台作业调度程序守护程序(就像Cron一样)

    它是Ruby,因此您可以理解和修改它以满足您的需求。 要求 经过最新的MRI Ruby 2.2 +,2.3 +,Rails 4. *和Rails 5. *的测试。 其他版本未经测试,但可能工作正常。 安装 将以下行添加到应用程序的Gemfile中: gem ...

    rails-engine

    通过API端点访问信息的理解 运行测试 运行bundle exec rspec以运行完整的测试套件。 此仓库的测试包括rspec,capybara,faker,Factorybot,shoa-matchers和simplecov,这些都可以在Gemfile找到。 分解为端到端测试...

    全栈测试:平衡单元测试和端到端测试

    教程和书籍常常侧重于搭建全栈开发环境和让测试能够进行所需要的“管件(plumbing)”(我综合运用了Angular、Rails、Bootstrap和Postgres)。但对于如何贯穿整个Web开发栈进行应用程序测试,却常常缺少指导。让我们...

    acl9:Rails的另一个基于角色的授权系统

    acl9的基本目标是确保您的规则易于理解和测试-换句话说,acl9可以轻松确保您的权限正确无误。 安装 Acl9是,因此只需将其添加到您的Gemfile (请注意,需要3.2才能支持Rails 6+): gem 'acl9' , '~> 3.2' 您将...

    rails-project

    您还将被问到一些测试您对Rails基础知识的问题。 (10分钟) 如果缺少任何要求,或者发现在理解上有明显的差距,请准备执行以下一项或全部操作: 提交改进的版本 再次见面进行另一个项目审查 不会发生什么: 您不会...

    Shoulda:使手指和眼睛的测试变得容易

    Shoulda可帮助您在Minitest和Test :: Unit下编写更易于理解,可维护的特定于Rails的测试。 快速链接 :loudspeaker: 概述 作为伞形宝石, shoulda宝石不包含任何自己的代码,而是带来了另外两个宝石的行为: 例如...

    《[精通ASP.NET.MVC.5框架》高清带书签

    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 in Action

    除了ASP.NET MVC框架本身,作者还介绍了Onion Architecture、领域驱动设计(DDD)、测试驱动开发(TDD)、控制反转(IoC)以及其它一些真实项目中经常用到的类库(和技术)。 本书章节如下: ASP.NET MVC框架入门 ...

    handbook:操作指南、风格指南和开发指南的集合

    尽早并经常根据成功标准进行测试。 我们的工作不是编程,,因此我们必须始终确保我们正在传递价值。 默认透明。 所有信息都应尽可能公开。 使用博客文章、Twitter、Basecamp、会议或任何最适合传播信息的方式。 ...

    ASP.NET MVC实战

    现在,Microsoft公司也加入了这个社区,ASP.NET MVC框架为应用程序开发人员提供利用成熟开发模式,开发易于理解、易于测试和易于维护的应用程序的新利器。《ASP.NET MVC实战》通过一个已经投产的代码营网站实例,...

    PHP开发框架 Laravel 手册4.2-v1.0.1版压缩文件

    为了这个目的,我们博取众框架之长处集中到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和测试进行

    Refactoring: Ruby Edition

    理解重构的核心原则以及为什么要这么做 • Recognize “bad smells” in your Ruby code 发现你 Ruby 代码中的 "bad smells" • Rework bad designs into well-designed code, one step at a time 一步一个脚印的...

    knowsql:SQL 提示和技巧 - 演示和基准测试

    意识>完全理解 打开消防栓:你不用全喝,但我会泡你 更轻松 第 1 章:索引 基本索引(bench - show seq vs idx) 唯一索引(比 rails - bench 快) 表达式索引(具有唯一性) 数学运算符和函数 电子邮件验证正则...

    基于MVC的JavaScript Web富应用开发

    作者 Alex MacCaw 是一名Ruby/JavaScript 程序员,在开源社区中很有名望,是Spine框架的作者,同时活跃在纽约、旧金山和柏林的各大 Ruby/Rails 论坛。除了作为一名工程师,他还喜欢带着他的尼康D90和冲浪板环游世界...

Global site tag (gtag.js) - Google Analytics