rails3測試理解

2021-08-31 10:38:19 字數 2953 閱讀 7973

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

詳情參考:

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:', :branch => 'rails3'

add: spec/spec_helper.rb require 'factory_girl'

mkdir spec/factories

cucumber-rails

installation

gem 'cucumber-rails'

gem 'capybara'

gem 'database_cleaner'

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可以參考:

輔助工具:

會自動監視你的**的改動,自動執行測試,所以你只要開乙個視窗就好

autotest

run: autotest

watchr

需要自己手工寫.watchr 或 watchr.rb檔案

run: watch .watchr 或 watchr.rb

spork

讓spec執行快起來

webrat or capybara

模擬瀏覽器

可以參考rails模板:

測試相關:

自動生成測試文件

通過附加引數 --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來過濾其他**覆蓋率的干擾

ps:guard

yajl

acts as api

lambda

acts_as_api

Rails3 入門之二 什麼是rails

rails 是基於ruby語言的web 開發框架。通過每個開發者開始的時候rails做的假設,能夠使web應用程式開發更加簡單,它可以讓你寫更少的 而完成的功能超過許多其他語言和其他框架。有rails的開發經驗者說它讓web應用程式更有趣。rails是乙個比較自我的框架。它假設有乙個 最佳 的做事方...

Rails3入門之十 安全

如果你發布你的blog。那麼其他人就可以隨便修改和新增部落格了。rails提供了乙個非常簡單的http認證系統,可以非常有幫助的解決這種情況。在postscontroller裡面我們需要乙個方法阻止那些沒有授權的使用者的操作。這時候我們可以使用http basic authenticate with...

Rails3全文檢索使用Sunspot gem

rails3 sunspot 在 中經常用到全文檢索,這樣出於使用的方便打算給everyday也做個全文檢索的功能,網上比較了幾個全文檢索的gem,發現sunspot 內建了solr引擎 比較適合我的需求,並沒有用到之前名氣稍大的think sphinx,下面介紹下rails3和sunspot的整合...