社会不適合破壊的お味噌マン

くまのプーさんのような大人になりたいです!

Rspecの書き方-その1(matcher)

RspecとはBDD(Test Driven)のテストフレームワーク

BDD(Behavior Driven Development)とはTDD(test Driven Development)テスト駆動開発から派生したテストフレームワーク

レッド:動作しないテストを作成する。 グリーン:テスト動作させる。(1番始めはシンプルに期待する値をそのままreturnで返えしてテスト自体が機能しているか確認する) リファクタリング:グリーンが出たらコードの重複などを整理してシンプルにする。

BDD/TDDについて詳しくは以下から いまさら聞けないTDD/BDD超入門(2):TDD/BDDの思想とテスティングフレームワークの関係を整理しよう (1/3) - @IT

Exapmle

以下のようなメソッドを用意する。

def add(a, b)
  return a + b
end
expect(add(1,2)).to_be←matcher
      ↑
テストしたいメソッドと引数 

結果が5である

expect(add(2, 3)).to eq(5) 

結果が5ではない

expect(add(2, 3)).not_to eq(5) 

結果が真偽値

expect(add(2, 3)).to be true

結果が10以下

expect(add(2, 3)).to be < 10

結果が1から10の間

expect(add(2, 3)).to be_between(1, 10).inclusive

Matcher一覧

Built in matchers - RSpec Expectations - RSpec - Relish