У меня есть следующий метод в моем контроллере:render_views Helper не работает, как ожидалось
def create
@job = Job.new(job_params)
if @job.save
render 'create_success', status: :created
else
render 'create_failure', status: :bad_request
end
end
И здесь не мой контроллер спецификация для этого:
require 'rails_helper'
RSpec.describe Api::V1::JobsController, :type => :controller do
let(:actor) { FactoryGirl.create(:user, :service_advisor) }
let(:auth_token) { actor.authentication_token }
describe 'POST #create' do
render_views
context 'with invalid attrubutes' do
let(:job) { FactoryGirl.build(:job, customer_id: nil).attributes }
it 'renders create_failure view' do
expect(response).to render_template :create_failure
end
it 'returns 400 status code' do
expect(response.status).to eq 400
end
end
end
end
Однако, по некоторым причинам, независимо от того, что я так и делаю, спецификация контроллера всегда думает, что этот метод возвращает пустой ответ и статус 200. Я могу проверить этот метод, используя postman или curl, и он работает как ожидалось - возвращает сообщения об ошибках и коды состояния (201/400), но моя спецификация всегда видит это как пустой ответ с кодом состояния 200.
Кажется, что render_views
не работает. Мой окр является:
рубин 2.0.0p594 Rails 4.1.0 RSpec 3.1.5
Вы можете добавить 'puts (response.body)' после первого 'it'? –
Я уже сделал это, он дает мне '' "' – mbajur
, если вы добавляете 'config.render_views' в блок Rspec.configure, ничего не меняется? –