下記のサイトのソースコードで質問があります。
Ruby on Rails チュートリアル:実例を使って Rails を学ぼう
sample_app_rails_4/user_spec.rb at master · railstutorial/sample_app_rails_4
ruby
1# spec/models/user_spec.rb 2require 'spec_helper' 3 4describe User do 5 6 before do 7 @user = User.new(name: "Example User", email: "user@example.com", 8 password: "foobar", password_confirmation: "foobar") 9 end 10 11 subject { @user } 12 # 一部省略 13 describe "with admin attribute set to 'true'" do 14 before do 15 @user.save! 16 @user.toggle!(:admin) 17 end 18 19 it { should be_admin } 20 end 21 # ...
疑問1
テストwith admin attribute set to 'true'
では、次をテストしていると書かれています。
特権を持つ管理ユーザーを識別するために、論理値をとるadmin属性をUserモデルに追加します。この後で説明しますが、こうすると自動的にadmin?メソッド (論理値を返す) も使えるようになりますので、これを使用して管理ユーザーの状態をテストできます。
第9章 ユーザーの更新・表示・削除 | Rails チュートリアル
admin
の初期値がfalseかどうかを確かめるなら@user.toggle!
を使わなくても、admin
をfalseと比較すればいいと思います。なぜわざわざtoggle!
を挟んでいるのでしょうか?
これはActive Recordの実装をテストとしているということでしょうか?
疑問2
@user = User.new()
とDBに保存する手前のデータを用意して、DBに保存するsave
の処理もテスト内容に加えています。そのためFactoryGirl.create
は使用されていません。しかし、これはFactoryGirl.build
で代用することもできると思うのですが、何か問題があるのでしょうか?
ご回答、よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/09/07 03:39