読者です 読者をやめる 読者になる 読者になる

コンパイラかく語りき

文系新卒プログラマーのメモ

文系プログラマーがRailsでロシア語アプリケーションをつくる⑨ ~RSpecの導入~

Rails

どうも!chuckです。

前回までで単語一覧を参照する機能が完成しました。せっかくWebアプリケーションを作成しているので、次はアカウントの機能を実装したいと思います。

今回は、Railsの強力なテストツールであるRSpecを導入しつつ、アカウント機能に必要なUserモデルを作成しますヽ(=´▽`=)ノ

 

chuckwebtips.hatenablog.com

 

 

RSpecを使いたい

RubyOnRailsチュートリアルで嫌というほどやったRSpecを、プライベートでも使ってみたい。せっかくRailsをやるんだから、便利なテストツールであるRSpecをマスターしたい…!

そんな気持ちで導入に踏み切りました(´ω`)

 

RSpecとは

便利なテストツールです。詳しくはこちら。

qiita.com

 

RSpecへの切り替え

ロシア語アプリケーションを作成するにあたって、RSpecではなくデフォルトのテストを選択してしまいました。まずはその切替を行います。

 

qiita.com

 

まず、application.rbファイルの設定を変更。

f:id:chuck0523:20150721210831p:plain

 

f:id:chuck0523:20150721210904p:plain

 

Gemfileにも、RSpecをインストールするよう書き換えます。(便利なテストデータ作成ツールであるfactory_girlもついでに導入します)

f:id:chuck0523:20150721210946p:plain

 

いつもどおりbundle installをして完了です。

 

 RSpecの導入

さあ、切り替えが完了したのでいよいよRSpecを導入します!

qiita.com

 

f:id:chuck0523:20150721211319p:plain

11行目のようにテスト環境にRSpecをインストールするよう指示。bundle install !

 

f:id:chuck0523:20150721211357p:plain

怒られてしまいました・゚・(つД`)・゚・ 

3.3.0にしなさいよということ??

 

言われたとおりに書き換え。

f:id:chuck0523:20150721211546p:plain

 

f:id:chuck0523:20150721211628p:plain

いい感じヽ(=´▽`=)ノ

 

次にRSpecに必要なディレクトリを作成します。コマンドはrails g(enerate) rspec:install です。

f:id:chuck0523:20150721211739p:plain

おっ!もう存在しているとのこと。

 

Userモデルの作成

さて、RSpecの準備ができたので、Userモデルを作成します。

www.rubylife.jp

 

rails g model user name:string email:string コマンドを発行。

f:id:chuck0523:20150721213152p:plain

おー!ちゃんとRSpecファイルも作成されてる!

 

f:id:chuck0523:20150721212753p:plain

こちらができあがったマイグレーションファイル。rake db:migrateコマンドを発行すると、schema.rbが以下のように変更されます

f:id:chuck0523:20150721212902p:plain

ちゃんとcreate文が2つになってる!

 

Userコントローラの作成。

次にUserに対するアクションを定義するUserコントローラを作成します。

www.rubylife.jp

 

f:id:chuck0523:20150721213451p:plain

めっちゃいっぱいファイルできたw RSpecファイルも作成されてる!

 

f:id:chuck0523:20150721213855p:plain

specファイルがひと通り揃いましたヽ(=´▽`=)ノ

 

さっそくrake rspecしてみる

まだ何も書いてませんが、rspecを実行してみようと思います!

 

f:id:chuck0523:20150721213954p:plain

あれ???!

 

あっ、コマンド間違ってたかも??ヽ(´Д`;)ノアゥア…

f:id:chuck0523:20150721214319p:plain

今回は特にエラーは起きず。何も書いてないし、無事パスした感じかな??

 

いや、またコマンドが違う??!Railsチュートリアルに従おう!bundle exec rspec spec/を実行!

f:id:chuck0523:20150721215457p:plain

できた!!

 

黄色いのはデフォのまま実行すると出ちゃうらしい。

f:id:chuck0523:20150721215613p:plain

f:id:chuck0523:20150721215604p:plain

↑↑デフォ

消しておこう…(;・∀・)

 

f:id:chuck0523:20150721215909p:plain

緑(成功)だけになりましたヽ(=´▽`=)ノ

 

ちょこっとRSpecを書いてみる

少しだけRSpecを書いてみます。Railsチュートリアルで書いたとはいえ、緊張するw

まずはテストを書くファイルを用意します。今回はspec_test.rbを作成。

f:id:chuck0523:20150721220828p:plain

一番下に入っています。 

まだ何も書いていないので、実行してもこの通り。

f:id:chuck0523:20150721220913p:plain

 

qiita.com

こちらの投稿を参考にして、以下のように記述しました。

f:id:chuck0523:20150721221116p:plain

 

実行してみます!

f:id:chuck0523:20150721221335p:plain

 

やったー!!!!できた!・゚・(つД`)・゚・ 

 

まとめ的な

RSpecの導入に成功しました!次回からはアカウント機能を実装していきますが、RSpecによるテストもしっかり書いていきたいと思います!

いやあ、Railsチュートリアルの時は義務感でテスト書いてたんですけど、自分で書いてみると楽しいかもヽ(=´▽`=)ノ

 

応用編??

qiita.com

これマスターできたらテストも楽しいだろうなあ…!

 

Follow Me!