Запустите тестирование контроллера с Devise - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь запустить тест рейка, используя devise (используя пользователя, который был создан с помощью семян базы данных)

Запуск rake test выдает следующую ошибку:

Failure:
CustomersControllerTest#test_should_get_index [/home/ubuntu/workspace/test/controllers/customers_controller_test.rb:7]:
Expected response to be a <2XX: success>, but was a <302: Found> redirect to <http://www.example.com/users/sign_in>
Response body: <html><body>You are being <a href="http://www.example.com/users/sign_in">redirected</a>.</body></html>

MyТест выглядит следующим образом:

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

Это очень простой тест, но я не знаю, как на самом деле войти на сайт перед выполнением теста.

1 Ответ

0 голосов
/ 24 мая 2018

Для тестирования действий, требующих аутентифицированного пользователя, вы можете использовать помощники Devise sign_in и sign_out.Они приходят от Devise::Test::ControllerHelpers в вашем тестовом примере или его родительском классе (или Devise::Test::IntegrationHelpers для Rails 5 +):

class CustomersControllerTest < ActionController::TestCase
  include Devise::Test::ControllerHelpers # <-- Include helpers
  test "should get index" do
    sign_in User.create(...) # <-- Create and authenticate a user
    get customers_url
    assert_response :success
  end
end

См. Раздел тесты контроллера в REISME Devise дляподробности.

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