Разработка sign_out не работает в тесте - все еще может получить доступ после sign_out, без перенаправления - PullRequest
0 голосов
/ 26 марта 2019

Это мой контроллер с устройством:

class UsersController < ApplicationController

  before_action :authenticate_user!, only: [:mypage]

и маршрут:

  get "/mypage", to: "users#mypage"

Теперь я хочу проверить вход и выход. Мой тест:

class RorIntegrationTest < ActionDispatch::IntegrationTest
  include Devise::Test::IntegrationHelpers

  test "sign_in then sign_out" do
    get "/mypage"
    user = users(:someuser)
    assert_response :redirect

    sign_in(user)
    get "/mypage"
    assert_response :success

    sign_out(user)
    get "/mypage"
    assert_response :redirect # this is line 17
  end

но результат:

Failure:
RorIntegrationTest#test_sign_in_then_sign_out [/ror/test/integration/ror_integration_test.rb:17]:
Expected response to be a <3XX: redirect>, but was a <200: OK>

bin/rails test test/integration/ror_integration_test.rb:6

Кажется, что первый get "/mypage" правильно перенаправлен, но почему второй не перенаправлен после sign_out?

...