scramble cadenza

技術ネタのガラクタ置き場

its を使うと NoMethodError で激怒される

症状

NoMethodError in 'App::Client hoge'
undefined method `its' for #<ActiveSupport::TestCase::Subclass_1::Subclass_2:0x1035bc058>

初めてエラー見たとき ( ゚д゚)!? ってなってしまったのでメモ。

解決法

it の中に its が入っているので、消す。
一旦気づくと当たり前なんですけどね。初心者あるあるってことで。

before

it 'hoge は "hoge" を返すこと' do
  its(:hoge) { should == 'hoge' }
end

after

its(:hoge) { should == 'hoge' }

おまけ

context で同じ事やるとエラーは出ません。
時々、its を使いつつ、どうしてこういう値が返るの? って理由を残したい時があるので、そういう場合はこっちで対応。

context 'hoge は "hoge" を返すこと'
  its(:hoge) { should == 'hoge' }
end