Ответы пользователя по тегу RSpec
  • Тестирование nested ресурсов?

    @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


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