IT技術にまつわる実験ノート

「長編を書くより、短編を数多く完成させてください。それが上達への近道です」 by 手塚治虫

自作Webアプリ「IT勉強会用 名刺ジェネレーター」を公開しました!ぜひご活用ください😀

https://it-benkyoukai-meishi.herokuapp.com/

Rails の fixture を使ってみる

はじめに

ここでは以下の記事を参考にして Rails で fixture を使ってみることにする。

 

使ってみる

サンプル用のプロジェクトを作成する。

  • rails new fixture_sample
  • cd fixture_sample

 

サンプル用に User モデルを scaffold で作成する。

  • bin/rails g scaffold User name:string

 

User に紐付いた Article モデルを scaffold で作成する。

  • bin/rails g scaffold Article title:string body:text user:references

 

マイグレーションを実行して DB に反映させる。

 

モデルで関連を定義する。

User は複数の Article を作成できるので、has_many メソッドで関連を定義する。

f:id:matt-note:20190618125825p:plain

 

fixture を作成する

test/fixtures/users.yml を編集する。

f:id:matt-note:20190618124414p:plain

 

test/fixtures/articles.yml を編集する。関連は user: urashima のようにして参照できる。

f:id:matt-note:20190618124526p:plain

 

fixture を DB に反映させる。

  • bin/rails db:fixtures:load

 

サーバーを起動して、http://localhost:3000/users にアクセスすると、以下のように fixture が設定されていることがわかる。

f:id:matt-note:20190618124644p:plain

 

テストしてみる

scaffold で作成される test/controllers ディレクトリは使わないので、削除しておく。

  • rm -rf test/controllers

 

test/models/user_test.rb を記述する。

f:id:matt-note:20190618130250p:plain

 

テストを実行する。

f:id:matt-note:20190618130404p:plain

-> テストを通すことができた。

 

test/models/article_test.rb も同様にテストしてみる。

f:id:matt-note:20190618131332p:plain

 

テストを実行する。

f:id:matt-note:20190618131449p:plain

-> こちらもテストを通すことができた。

 

まとめ

  • fixture で、関連も作成できる。
  • fixture を DB に反映させるには rails db:fixtures:load コマンドを実行する。