tawara's blog

雑記。個人の見解です。

【Rspecメモ】before内で定義した変数は、it内で使えない

表題のとおり。テストコードを書いていて詰まった。before内にbinding.pryを仕込んでみたら、ローカル変数からテストしたいメソッドは呼べたのに、it内では呼べない、という現象だった。

よく考えればあたりまえのことだ。before内はひとつのブロックとみなせば、そこで定義された変数の適用範囲はそのブロック内ではないか。詳しい人に教えてもらって解決した。対処法としては、インスタンス変数にしたり、letで用意したり、あるいはitのなかで変数を定義したりと考えられる。今回は最後の方法を採った。

(了)