Ich versuche, eine einfache Tests auf meiner Anwendung mit Gerät zu erstellen. Ich habe eine Umleitung eingerichtet, wenn der Benutzer nicht angemeldet ist, aber obwohl ich vor dem Test sign_in benutze, werde ich immer noch umgeleitet. Wenn ich das manuell teste, funktioniert es gut.Rails Controller Tests mit Devise anmelden unerwartetes Verhalten
users.yml
george:
name: George
email: [email protected]
encrypted_password: <%= Devise::Encryptor.digest User, '123456' %>
addresses.yml
georges_home:
title: Home
receiver: George
street: '132 Mitchell St SW'
country: 'US'
city: 'Atlanta'
postal_code: '30303'
phone: '+1 404-524-5665'
state: 'Georgia'
user: george
addresses_controller.rb
class AddressesController < ApplicationController
before_action :login_needed
def index
@addresses = Address.where(user_id: @current_user.id)
end
private
def login_needed
if !user_signed_in?
redirect_to new_user_session_path, alert: 'Please log in.'
end
end
end
addresses_controller_test.rb
require 'test_helper'
class AddressesControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup do
sign_in users(:george)
@address = addresses(:georges_home)
end
test "should get index" do
get :index
assert_response :success
assert_not_nil assigns(:addresses)
end
end