Неверный пароль при тестировании Devise - PullRequest
2 голосов
/ 17 января 2012

Я пытаюсь запустить тест

describe "CreateFolders" do
  describe "GET /projects" do
    it "new folder", :js => true do
      @user = FactoryGirl.create(:user)
      visit projects_path
      fill_in('user_Login', :with => @user.email)
      fill_in('user_password', :with => @user.password)
      click_button('Sign in')
      page.should have_content('Logged in')
    end
  end

Я вижу

Failures:

  1) CreateFolders GET /projects new folder
     Failure/Error: page.should have_content('Logged in')
       expected there to be content "Logged in" in "Invalid email or password.\nSign in\nRemember me\nForgot your password?"                                                                                                                     
     # ./spec/requests/create_folders_spec.rb:17:in `block (3 levels) in <top (required)>'

============================================================================= ОБНОВЛЕНО

FactoryGirl.define do
  factory :user do
    email Faker::Internet.free_email
    password 'password'
    Name Faker::Name.first_name
    Surname Faker::Name.last_name
    Phone Faker::PhoneNumber.phone_number
    Login Faker::Name.first_name
    company {|user| user.association(:company) }
  end
end

Ответы [ 3 ]

2 голосов
/ 17 января 2012

В рельсах есть три набора баз данных: разработка базы данных, тестовая база данных и производственная база данных, возможно, вы создаете нового пользователя в базе данных разработки, где он должен быть создан в тестовой базе данных, поскольку при выполнении теста будет использоваться тестовая база данных.

Убедитесь, что новый пользователь создан в тестовой базе данных.

Если вам просто нужно посетить страницу, требующую аутентификации, без проверки формы входа, вот простой способ сделать это в Capybara: https://github.com/plataformatec/devise/wiki/How-To:-Test-with-Capybara

Надеюсь, это поможет!

0 голосов
/ 04 февраля 2012

Вы должны использовать огурец для этой цели

  @javascript
  Scenario Outline: Show or not dasboard
    Given the following user records
      | email                | password  | login    |
      | admin@mail.com       | password  | admin    |

    When I am on the home page
    And I fill in "user_email" with "<login>"
    And I fill in "user_password" with "<password>"
    And I press "Sign in"
    Then I should <flash>

    Examples:
      | login          | password | flash                         |
      | admin@mail.com | password | see "Signed in successfully." |
0 голосов
/ 17 января 2012

Полагаю, вы используете для тестирования Капибару.Попробуйте изменить fill_in на имена меток, а не на имена полей.Например:

fill_in "Login", :with => @user.email
fill_in "Password", :with => @user.password

Они могут отличаться для вашего приложения - просто замените, как на самом деле называются метки ваших полей (все, что вы видите на экране, когда переходите в projects_path).Кроме того, нет необходимости в скобках.

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