どうも!chuckです。
前回までで単語一覧を参照する機能が完成しました。せっかくWebアプリケーションを作成しているので、次はアカウントの機能を実装したいと思います。
今回は、Railsの強力なテストツールであるRSpecを導入しつつ、アカウント機能に必要なUserモデルを作成しますヽ(=´▽`=)ノ
RSpecを使いたい
RubyOnRailsチュートリアルで嫌というほどやったRSpecを、プライベートでも使ってみたい。せっかくRailsをやるんだから、便利なテストツールであるRSpecをマスターしたい…!
そんな気持ちで導入に踏み切りました(´ω`)
RSpecとは
便利なテストツールです。詳しくはこちら。
RSpecへの切り替え
ロシア語アプリケーションを作成するにあたって、RSpecではなくデフォルトのテストを選択してしまいました。まずはその切替を行います。
まず、application.rbファイルの設定を変更。
Gemfileにも、RSpecをインストールするよう書き換えます。(便利なテストデータ作成ツールであるfactory_girlもついでに導入します)
いつもどおりbundle installをして完了です。
RSpecの導入
さあ、切り替えが完了したのでいよいよRSpecを導入します!
11行目のようにテスト環境にRSpecをインストールするよう指示。bundle install !
怒られてしまいました・゚・(つД`)・゚・
3.3.0にしなさいよということ??
言われたとおりに書き換え。
いい感じヽ(=´▽`=)ノ
次にRSpecに必要なディレクトリを作成します。コマンドはrails g(enerate) rspec:install です。
おっ!もう存在しているとのこと。
Userモデルの作成
さて、RSpecの準備ができたので、Userモデルを作成します。
rails g model user name:string email:string コマンドを発行。
おー!ちゃんとRSpecファイルも作成されてる!
こちらができあがったマイグレーションファイル。rake db:migrateコマンドを発行すると、schema.rbが以下のように変更されます
ちゃんとcreate文が2つになってる!
Userコントローラの作成。
次にUserに対するアクションを定義するUserコントローラを作成します。
めっちゃいっぱいファイルできたw RSpecファイルも作成されてる!
specファイルがひと通り揃いましたヽ(=´▽`=)ノ
さっそくrake rspecしてみる
まだ何も書いてませんが、rspecを実行してみようと思います!
あれ???!
あっ、コマンド間違ってたかも??ヽ(´Д`;)ノアゥア…
今回は特にエラーは起きず。何も書いてないし、無事パスした感じかな??
いや、またコマンドが違う??!Railsチュートリアルに従おう!bundle exec rspec spec/を実行!
できた!!
黄色いのはデフォのまま実行すると出ちゃうらしい。
↑↑デフォ
消しておこう…(;・∀・)
緑(成功)だけになりましたヽ(=´▽`=)ノ
ちょこっとRSpecを書いてみる
少しだけRSpecを書いてみます。Railsチュートリアルで書いたとはいえ、緊張するw
まずはテストを書くファイルを用意します。今回はspec_test.rbを作成。
一番下に入っています。
まだ何も書いていないので、実行してもこの通り。
こちらの投稿を参考にして、以下のように記述しました。
実行してみます!
やったー!!!!できた!・゚・(つД`)・゚・
まとめ的な
RSpecの導入に成功しました!次回からはアカウント機能を実装していきますが、RSpecによるテストもしっかり書いていきたいと思います!
いやあ、Railsチュートリアルの時は義務感でテスト書いてたんですけど、自分で書いてみると楽しいかもヽ(=´▽`=)ノ
応用編??
これマスターできたらテストも楽しいだろうなあ…!
Follow Me!
やったー!初めて自分でRSpec書いたよー!(´;ω;`) pic.twitter.com/MmpxmQes6V
— タク(chuck) (@chuck0523) 2015, 7月 21