@Neznaikin

Тестирование nested ресурсов?

Начал изучать БДД на примере Stackoverflow, дошел до тестирования фич answers ресурсов. Собственно, вопрос в этом и заключается - как тестировать nested ресурсы, если тестировать по правилам нужно только в рамках одного контроллера?
Как тестировать контроллер answers, у которого пути question/(;question_id)/answer(:id)
Извините, если вопрос задан сумбурно. Пока еще учусь, и в терминологиях не то, что особо, а вообще не разбираюсь...
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
@raventid
Насколько я понимаю у вас есть контроллер AnswersController? И он управляет ресурсом ответы. Если так, то да, пишите тесты контроллера на него в файлик answers_controller_spec.rb, например создание с помощью аякса можно протестировать так

answers_controller_spec.rb

describe 'POST #create' do
    sign_in_user

    context 'with valid attributes' do
      it 'saves answer in database' do
        expect { post :create, question_id: question, answer: attributes_for(:answer), format: :js }.to change(question.answers, :count).by(1)
      end

      it 'assigns answer with current user' do
        post :create, question_id: question, answer: attributes_for(:answer), format: :js
        assigning_answer = assigns(:answer)
        expect(assigning_answer.user_id).to eq subject.current_user.id
      end

      it 'render create template' do
        post :create, question_id: question, answer: attributes_for(:answer), format: :js
        expect(response).to render_template :create
      end
    end


И не забудьте уделить особое внимание акцептанс спекам и тестам модели. Тесты контроллера не самое главное :)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы