Функциональное тестирование Ruby On Rails: индекс с полиморфной моделью - PullRequest
1 голос
/ 06 марта 2011

У меня есть полиморфная модель с именем Address, в настоящее время я пытаюсь написать некоторые базовые функциональные тесты для этой модели и контроллера. Что касается контроллера, я в растерянности, как это сделать. Например, у меня есть другая модель с именем Patient, у каждого пациента будет адрес, поэтому я начал писать следующий функциональный тест, но не знаю, как использовать «get» с вложенным полиморфным ресурсом. Теперь я смог найти информацию о полиморфном тесте для приборов здесь: http://api.rubyonrails.org/classes/Fixtures.html но это не поможет мне проверить по индексу. Любая помощь очень ценится при полной и полной потере здесь.

ФАЙЛ: тестовый / функциональный / address_controller_test.rb

require 'test_helper'
class AddressesControllerTest < ActionController::TestCase
  setup do
    @address = addresses(:of_patient)
    @patient = patients(:one)
    activate_authlogic
  end

  test "patient addresses index without user" do
    get :index  <<<<<<<<<<<< what goes here????
    assert_redirected_to :login
  end
end

1 Ответ

0 голосов
/ 06 марта 2011

Предполагая, что ваш контроллер настроен так, как я думаю:

def index
  if @current_user
    @addresses = @current_user.addresses.all
  else
    redirect_to login_path
  end
end

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

test "patient addresses index without user" do
  get :index, :patient_id => @patient.id
  assert_redirected_to :login
end

test "patient addresses with user" do
  @current_user = @patient
  get :index, :patient_id => @patient.id
  assert_response :success
end

Следует иметь в виду, чточто индексному методу нужно обработать Patient_id.

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