Ruby on Rails не пойманный бросок :warden

require 'test_helper'

class DashboardControllerTest < ActionController::TestCase
  include Devise::TestHelpers
  include Warden::Test::Helpers
  Warden.test_mode!

  test "should get index" do
    get :index
    assert_response :success
  end

end

Я включил Warden::Test::Helpers, как указано в других сообщениях стека, но я все еще получаю непойманный бросок :warden, и это сводит меня с ума. Спаси меня? :[


person Kevin Behan    schedule 03.01.2015    source источник
comment
Это должно помочь: stackoverflow.com/a/8555444/429758   -  person Prakash Murthy    schedule 03.01.2015


Ответы (1)


О, моего кризиса удалось избежать, просто создав пользователя в тесте вместо использования фикстур

  describe "user does something" do
    it "allows users to do something" do
      User.create!(email: "[email protected]", password: "abcdef", first_name: 'Jim', last_name: 'Bo', username: 'somename')

Я поставил код выше, прежде чем поднимать какие-либо ожидания, и все было в порядке. По какой-то причине, когда я тестировал пользователя с автоматически сгенерированными тестами и фикстурами, был поднят uncaught throw :warden

class StudentsControllerTest < ActionController::TestCase
  setup do
    @student = students(:one)
  end

  test "should get index" do
    get :index
    assert_response :success
    assert_not_nil assigns(:students)
  end
end

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

one:
  first_name: User
  last_name: Example
  email: [email protected]
  password: abcdef
  encrypted_password: <%= User.new.send(:password_digest, 'lalala') %>
person Kevin Behan    schedule 06.01.2015