Ruby on Rails開発のインターン (Day 27)
こんにちは、皆さん!
7週目がやってきた。インターンも残りわずかだ。もうあと2週間だから時間も限られている。今やっているマップテストをどこまでやるべきなのかもよくわからない。思い返すと、このインターンはすごくよかったし、思っていたよりずっと短かった気がする。時間がたつのって本当に早いね(笑)
- トピック:
- 疑問:
- 問題:
- 学習した内容:
- テストが始まる前に変数をあらかじめ定義する
- 今後やってみたいこと:
- リソース;
テストで使われる変数をあらかじめ定義する
テストでこの機能を使おうと思ったのは、多くのシチュエーションがあり、それぞれに対するマーカーが必要だし、いくつかのテストで同じものを使いたいと思ったからだ。
少し探してみたら、下記のようなテンプレが出てきた
before(:each) do # your code here end
それで、僕は下記のを試した
before(:each) do place = Place.find(1) end
その後、テスト内でその変数を使おうとしたら、下記のようなエラーが返ってきた。
NameError: undefined local variable or method `place' for #<RSpec::ExampleGroups::TheSigninProcess:0x0055ddbc033078>
スペルミスはなかったのですごくおかしな感じがしたのだが、後になって、インスタンス変数しかこのような役割を果たすことはできないとわかった。つまり、あらかじめ定義しようとしている変数の前に@
をつける必要があったのだ。よって、下記のが正しい。
before(:each) do @place = Place.find(1) end
これで僕の場合はうまくいき、同じ変数の定義を避け、コードがずっとよく見えるようになった。
まとめ
ご精読ありがとうございました。では、また次回まで✌