#ruby-on-rails #rspec
#ruby-on-rails #rspec
Вопрос:
Пара тестов, которые у меня есть, внезапно терпят неудачу, и я не уверен, почему. Вот мои тесты, которые терпят неудачу:
Failures:
1) Users signup success should make a new user
Failure/Error: response.should render_template('users/show')
Expected block to return true value.
# ./spec/requests/users_spec.rb:33:in `block (5 levels) in <top (required)>'
# ./spec/requests/users_spec.rb:26:in `block (4 levels) in <top (required)>'
2) Users sign in/out success should sign a user in and out
Failure/Error: controller.should be_signed_in
expected signed_in? to return true, got false
# ./spec/requests/users_spec.rb:67:in `block (4 levels) in <top (required)>'
И вот тесты:
it "should make a new user" do
lambda do
visit signup_path
fill_in "Name", :with => "Example User"
fill_in "Email", :with => "user@example.com"
fill_in "Password", :with => "foobar"
fill_in "Confirmation", :with => "foobar"
click_button
response.should render_template('users/show')
end.should change(User, :count).by(1)
end
describe "success" do
it "should sign a user in and out" do
user = Factory(:user)
visit signin_path
fill_in "Email", :with => user.email
fill_in "Password", :with => user.password
click_button
controller.should be_signed_in
click_link "Sign out"
controller.should_not be_signed_in
end
end
Дело в том, что он проходил раньше, и единственное, что я сделал, это изменил тему (css) моего приложения. Я дважды проверил это в рабочей среде, и это работает отлично. Пользователь действительно входит в систему / выходит, и он создается. Сбой только в тестировании. Почему это может быть?
Ответ №1:
Есть ли у вас какое-либо ограничение уникальности в таблице users? Поскольку вы не используете там фабрику, возможно, вы пытаетесь создать пользователя, который уже есть в вашей БД
Комментарии:
1. У меня есть ограничение уникальности, но я только что проверил свою базу данных, и она пуста, так что это не должно быть проблемой.
2. Что происходит, когда вы запускаете приложение локально и пытаетесь выполнить вход?