RSpec on Rails 101
Introduction
為什麼要寫測試
RSpec 介紹
RSpec Setup for Ruby
RSpec Setup for Rails
Ch 0 - 本書專案
Ch 1 CRUD 測試
1-1 courses#index 要能見到所有的 Course
使用 FactoryGril 生假資料
One assertion per test 原則
RSpec metadata
1-2 courses#show 見到單一筆資料
1-3 courses#new 填寫表單
1-4 courses#create 送出表單
Shoulda Matcher
使用 context 整理重複語句
1-5 在 course#edit 修改表單
1-6 courses#update 送出表單
1-7 courses#destroy 刪除資料
1-8 將首頁設到 courses#index
1-9 小結
Ch 1 Extra
安裝 Bootstrap CSS
⽤ Bootstrap 做⼀個「有 Nav bar 」的 layout
Bootstrap 結合 Simple Form
Ch 2 結合 Devise 做測試
使用者必須登入才能操作 course#new
使用 let 整理
使用 before 整理
使用者必須登入才能操作 course#create
使用者 create course 的話,必須要跟 user 做關聯
使用者必須登入才能操作 course#edit
使用者 edit course 的話,必須是當初創作者才可以修改
使用者必須登入才能操作 course#update
使用者 update course 的話,必須是當初創作者才可以更新
使用者必須登入才能操作 course#destroy
使用者 destroy course 的話,必須是當初創作者才可以刪除
Ch 3 使用 Capybara 做 Integration 測試
測試瀏覽首頁
測試登入 sign_in_spec
測試登出 sign_out_spec
使用 PageObjects 讓 Integration Test 更好維護
重構 sign_in_spec
使用 formulaic 填表單
重構 sign_out_spec
測試必須包含 good / bad example
新增 user_add_course_spec
加入 invalid course 的 case
使用 i18n 取代直接測試字串
Ch 5 - 進階測試概念
Stub V.S Mock
使用 stub
使用 double ( mock objects )
Stubbing
Mocking
Spying
附錄 Appendix
Model 怎麼測試
Controller 怎麼測試
Mailer 怎麼測試
Helper 怎麼測試
Job 怎麼測試
Plain Old Ruby Object 怎麼測試
Continuous Integration
自訂 RSpec Matcher
假資料,Faker 以及 FactoryGirl
與時間有關的測試
RSpec 生成的文件
純 Ruby 測試練習
羅馬數字
99 bottles
推薦閱讀
Powered by
GitBook
Ch 5 - 進階測試概念
進階測試概念
這一章,我主要來講解幾個重要概念:
測試的種類
stub V.S. mock
dobule
stubbing
mocking
spying
測試的種類
一般來說,測試主要有三大種類。
1. 驗證回傳值是否符合期待
查詢:
回傳某些東西
不改變狀態
2. 驗證物件狀態的改變是否符合期待
命令:
改變內部狀態
呼叫:
是否有去執行互動
results matching "
"
No results matching "
"