Я использую db/seeds.rb
, чтобы заполнить мою базу данных двумя пользовательскими ролями («Администратор», «Пользователь»), которые никогда не изменятся. Однако, когда я запускаю тесты, начальные данные не переносятся, и результаты являются ошибочными.
Когда я пытаюсь запустить огурец, я получаю следующую ошибку:
Использование профиля по умолчанию ... Характеристика: Войдите, чтобы получить доступ
Для защищенных разделов сайта Действительный пользователь должен иметь возможность
войти
Сценарий: пользователь не зарегистрирован #
features / users / sign_in.feature: 6 не зарегистрировано: роль
(ArgumentError) * +1010 *
/Users/x/.rvm/gems/ruby-1.9.2-p180/gems/factory_girl-2.0.0.rc4/lib/factory_girl/registry.rb:15:in
find'<br>
/Users/x/.rvm/gems/ruby-1.9.2-p180/gems/factory_girl-2.0.0.rc4/lib/factory_girl.rb:39:in
factory_by_name '
/Users/x/.rvm/gems/ruby-1.9.2-p180/gems/factory_girl-2.0.0.rc4/lib/factory_girl/syntax/vintage.rb:53:in
default_strategy'<br>
/Users/x/.rvm/gems/ruby-1.9.2-p180/gems/factory_girl-2.0.0.rc4/lib/factory_girl/syntax/vintage.rb:146:in
Factory '
/Users/x/rails/ply_rails/features/support/db_setup.rb:6:in
`Перед»
Учитывая, что я не вошел в #
Особенности / step_definitions / user_steps.rb: 36
Вот как выглядит моя установка:
# features/support/db_setup.rb
Before do
# Truncates the DB before each Scenario,
# make sure you've added database_cleaner to your Gemfile.
DatabaseCleaner.clean
Factory(:role, :name => 'Admin')
Factory(:role, :name => 'User')
end
# features/users/sign_in.feature
Feature: Sign in
In order to get access to protected sections of the site
A valid user
Should be able to sign in
Scenario: User is not signed up # THIS IS LINE 6
Given I am not logged in
And no user exists with an email of "user@user.com"
When I go to the sign in page
And I sign in as "user@user.com/password"
Then I should see "Invalid email or password."
And I go to the home page
And I should be signed out
# features/step_definitions/user_steps.rb
Given /^I am a "([^"]*)" named "([^"]*)" with an email "([^"]*)" and password "([^"]*)"$/ do |role, name, email, password|
User.new(:name => name,
:email => email,
:role => Role.find_by_name(role.to_s.camelize),
:password => password,
:password_confirmation => password).save!
end
Не уверен, с чего начать, чтобы это заработало, спасибо за вашу помощь / время!