Rails 3アプリでCapybara 1.0テストを実行して、確認リンクをクリックしたときに実際に確認されたかどうかをテストします。Rails 3/Capybaraがモデル属性を保存していません
これは実際に手動でテストするときに実際に機能します。さらに、あなたが見ることができるように、これをデバッグするための確認メソッドに入れたputs @ user.confirmed行があり、テストを実行すると実際に真を出力します。ただし、テスト自体は失敗します。
コントローラーメソッドを実行した後、私のユーザーモデルで確認済みの属性がテストによって記憶されていないようです。
私には何が欠けていますか?事前にありがとうございます。
テスト:
it "should allow a user to be confirmed after clicking confirmation link" do
fill_in('user_email', :with => '[email protected]')
click_button('Submit')
@user = User.find_by_email('[email protected]')
@user.confirmed.should be_false
visit confirm_path(@user.confirmation_code)
@user.confirmed.should be_true
end
コントローラ方法:
def confirm
@confirmation_code = params[:confirmation_code]
@user = User.find_by_confirmation_code(@confirmation_code)
@website = @user.website
@user.confirm
if @user.referrer_id
User.find(@user.referrer_id).increment_signups
end
flash[:success] = "Thanks for signing up!"
flash[:user_show] = @user.id
puts @user.confirmed
redirect_to "http://" + @website.domain_name
end
Userモデル方法:
def confirm
self.confirmed = true
self.save
end
はい!今すぐテストが動作します。迅速かつ正確な対応に感謝します! – Rebitzele