iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 2
0

Model 測試要包含

  1. 使用有效屬性實例化的model 應該是有效的
    (When instantiated with valid attributes, a model should be valid.)
  2. 無法通過資料驗證的資料,測試要失敗
    (Data that fail validations should not be valid.)
  3. 類別方法和實體方法按預期可正常使用
    (Class and instance methods perform as expected.)

RSpec Model測試的基本結構
這是針對簡單的 Model所寫的測試,並且有四點要注意:
• 描述了一系列期望的表現,也就是User Model 能做哪些事
• 一個測試(以it開頭)只測一件事。這裡分別單獨測試了first_name、 last_name 和 email 能否通過驗證。如果測試失敗了,我們就能知道到底是哪個屬性沒有通過驗證。
• 每個測試的目的都很明確。it後面的描述在RSpec中其實是可以省略的,不過省略的話測試閱來就不太順了。
• 每個測試的描述都以動詞開頭,而沒用「should(應該)」。
請讀出這些期望的表現:
「User is invalid without a first name」
「User is invalid without a last name」
「User returns a user’s full name as a string」。
可讀性。這是 RSpec 的一大特色。

describe User do
  it "is valid with a first name, last name, email, and password"
  it "is invalid without a first name"
  it "is invalid without a last name"
  it "is invalid without an email address"
  it "is invalid with a duplicate email address"
  it "returns a user's full name as a string"
end

未完..


上一篇
來安裝Rspec 吧!
系列文
說好的Rspec 呢?2

尚未有邦友留言

立即登入留言