사용자가 확인 링크를 클릭하면 실제로 확인되었는지 테스트하기 위해 Rails 3 앱에서 Capybara 1.0 테스트를 실행하려고합니다.Rails 3/Capybara가 모델 속성을 저장하지 않습니다.
이제 수동으로 테스트 할 때 실제로 작동합니다. 또한, 당신이 볼 수 있듯이, 이것을 디버깅하는 confirm 메소드에 넣는 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
사용자 모델 방법 :
def confirm
self.confirmed = true
self.save
end
예! 이제 테스트가 작동합니다. 신속하고 정확한 답변을 보내 주셔서 감사합니다. – Rebitzele