Open2
expect (var).toで詰まった
成功すればtrueを返すメソッドのrspecを書いた時にちょっとハマった
expect (subject).to be_truthy
と書くと
NoMethodError:
undefined method `to' for true:TrueClass
と怒られる。
はじめスペースが入っていたことに気づかずあたふたしたが、調べると同じことをissueで建てている人がいいた。
expect (true).to
と
expect(true).to
は解釈が違うらしい。なんでこんな仕様にしたんだ
rubyはrspec記述のスペースも構文として解釈するので
expect (true).to
は
expect以下の全てを期待値として見る
そのため、
## これは
expect (true).to be_truthy
## こう解釈される
expect((true).to be_truthy)
なるほどなぁ……