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的整合...