factorygirlで、
テストを走らせた時に、ユーザーを作成し、そのユーザーの値でログインをしたいんですが、うまくいきません。
↓のようなコードで、
ruby
1 2RSpec.describe 'sign in', type: :request do 3 let(:user){ FactoryGirl.create(:user) } 4 5 it do 6 with_session(:taro) do 7 post '/sign_in', user_name: user.name, password: user.password 8 . 9 . 10 end 11 end 12 13end 14
FactoryGirlは↓な感じです。
ruby
1 2FactoryGirl.define do 3 factory :user do 4 email 'test_user@example.com' 5 username 'test_user' 6 . 7 . 8 end 9end 10
1回テストを走らせたあとに、もう一度テストを走らせ、binding.pryで止めて
ruby
1 2RSpec.describe 'sign in', type: :request do 3 let(:user){ FactoryGirl.create(:user) } 4 5 it do 6 with_session(:taro) do 7 binding.pry 8 post '/sign_in', user_name: user.name, password: user.password 9 end 10 end 11 12end 13
> user1 ActiveRecord::RecordInvalid: バリデーションに失敗しました。メールは既に使われています。
とすると、というエラーが出ます。
テストのDBはテストを走らせる度に毎回つくられるものではない?
テストのDB登録時にメール重複のエラーなど出ないようにするには、どうすればよいのでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/02/19 04:58
2016/02/19 05:24
2016/02/19 05:31 編集
2016/02/19 07:49
2016/02/19 10:29