自分流 Rspec の it と specify の使い分けのルール

More than 1 year has passed since last update.

Rspec の it と specify を無意識に使い分けていると感じたので、自分流のルールを言語化します。


ルール

以下のようなルールに沿って使い分けている。

ルール1 :arrow_right: 一行でテストを書く場合は it 、複数行でテストを書く場合は specify

ルール2 :arrow_right: ただし、テストの検証の説明を書く場合は、一行であっても specify を使用する。


具体例

具体例を示します。

# ルール1の一行のテストの場合です

it { expect(1 + 1).to eq 2 }

# ルール1の複数行のテストの場合です
specify do
expected = 1 + 1

expect(expected).to eq 2
end

# ルール2の場合です
specify '1 と 1 を足すと 2 になること' do
expect(1 + 1).to eq 2
end


感想

このようなルールが自分の中で決まっていると、「実装の細かい部分で書き方を悩まずに統一性を保てる」、「全体の設計などもっと重要なことを考えるリソースが増える」という利点があると考えています。