Я пытаюсь запустить тест Capybara 1.0 в своем приложении на Rails 3, чтобы проверить, действительно ли пользователь нажимает на ссылку подтверждения. Он действительно подтверждается.
Теперь, на самом деле, это работает, когда я тестирую еговручную.Кроме того, как вы можете видеть, есть строка put @ user.confirmed, которую я вставил в метод подтверждения для отладки, и он действительно выводит true, когда я запускаю тест.Однако сам тест не пройден.
Кажется, что проверенный атрибут в моей пользовательской модели не запоминается тестом после выполнения метода контроллера.
Чего мне не хватает?Большое спасибо заранее.
Тест:
it "should allow a user to be confirmed after clicking confirmation link" do
fill_in('user_email', :with => 'test@test.com')
click_button('Submit')
@user = User.find_by_email('test@test.com')
@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