Здравствуйте, я недавно унаследовал проект, в котором бывший разработчик не был знаком с rails, и решил добавить много важной логики в помощники вида.
class ApplicationController < ActionController::Base
protect_from_forgery
include SessionsHelper
include BannersHelper
include UsersHelper
include EventsHelper
end
В частности, управление сессиями.Это нормально, я работаю с приложением, но у меня возникают проблемы с написанием тестов для этого.
Конкретный пример.Некоторые действия делают before_filter
, чтобы узнать, является ли current_user
администратором.Этот current_user
обычно устанавливается методом sessions_helper
, который используется всеми нашими контроллерами. Поэтому, чтобы правильно протестировать наши контроллеры, мне нужно иметь возможность использовать этот current_user
метод
Я пробовал это:
require 'test_helper'
require File.expand_path('../../../app/helpers/sessions_helper.rb', __FILE__)
class AppsControllerTest < ActionController::TestCase
setup do
@app = apps(:one)
current_user = users(:one)
end
test "should create app" do
assert_difference('App.count') do
post :create, :app => @app.attributes
end
end
Оператор require находит session_helper.rb
в порядке, но без магии Rails он недоступен так же, как в AppsControllerTest
Как я могу подделать этот сумасшедшийнастройка для тестирования?