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

 

 

 

你可能感兴趣的:(html,git,TDD,Rails,rspec)