rspec и неопределенный метод на модели - PullRequest
3 голосов
/ 23 января 2012

Я пытаюсь следить за Railscasts по тестированию интеграции и проверяю URL сброса пароля.У меня проблема с NoMethodError, и я не уверен, что происходит.

У меня есть пользовательская модель со значением Forgot_password, которое является просто хэшем, который будет отправлен по электронной почте.

Этокажется, работает

ruby-1.9.2-p290 :001 > u=User.find(1)
...
ruby-1.9.2-p290 :002 > u.forgot_password
 => "1280aceaf23f185a2d09a57b5534e7e3"

, но я получаю следующую ошибку:

1) PasswordResets emails user when requesting password reset
   Failure/Error: click_button "jt"
   NoMethodError:
     undefined method `forgot_password=' for #<User:0x007ff916b03da0>
   # /Users/jt/rails-1/app/controllers/users_controller.rb:61:in `forgot_password_confirmation'
   # (eval):2:in `click_button'

и вот спецификация:

require 'spec_helper'

describe "PasswordResets" do
  it "emails user when requesting password reset" do
    user=Factory(:user)
    visit log_in_path
    click_link "password"
    fill_in "email", :with => user.email
    click_button "jt"
  end
end

Что говорит мне NoMethodError?Это выглядит так, как будто с рельсов c, значение Forgot_password существует.Чего мне не хватает?

thx

1 Ответ

14 голосов
/ 23 января 2012

Только для будущих поисковиков:

Когда вы видите ошибку отсутствия метода с чем-то вроде "attributetename =" - но вы знаете, что active-record добавляет этот attr_accessor в модель, вы должны убедиться, чтоЗапустил:

rake db:test:prepare

После миграции.Не могу сказать, сколько раз это меня достало!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...