Используете ли вы Devise с подтверждением?В этом случае создать недостаточно, и вам нужно подтвердить пользователя с помощью @user.confirm!
Во-вторых, почему вы создаете пользователя в функциональном тесте?Объявите своих пользователей в приборе следующим образом (Verified_at, если вам требуется только подтверждение):
test / fixtures / users.yml:
user1:
id: 1
email: user1@test.eu
encrypted_password: abcdef1
password_salt: efvfvffdv
confirmed_at: <%= Time.now %>
и войдите в свои функциональные тесты с помощью:
sign_in users(:user1)
Редактировать: я только что увидел, что в моем приложении Devise-Testhelpers объявлены в test / test-helpers.rb, и я не знаю, если это имеет значение, может быть, вы хотите попробовать:
ENV["RAILS_ENV"] = "test"
require File.expand_path('../../config/environment', __FILE__)
require 'rails/test_help'
class ActionController::TestCase
include Devise::TestHelpers
end
class ActiveSupport::TestCase
# Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
#
# Note: You'll currently still have to declare fixtures explicitly in integration tests
# -- they do not yet inherit this setting
fixtures :all
# Add more helper methods to be used by all tests here...
end