Как мне проверить 204 ответа в RSpec в Rails? - PullRequest
10 голосов
/ 03 марта 2012

Я проверяю действие удаления моего контроллера ресурсов следующим образом:

describe ResourceController do
  context "DELETE destroy" do
    before :each do
      delete :destroy, id: @resource.id
    end
    it { should respond_with(:no_content) }
  end
end

Ожидается ответ 204 / без содержимого.Однако этот тест не пройден, так как ответ, возвращаемый сервером, - 406. Ответ - 204, когда я обращаюсь к контроллеру напрямую из моего клиента тестирования Rest.

Ответы [ 2 ]

7 голосов
/ 03 марта 2012

Эта страница показывает, как проверить код ответа.

describe ResourceController do
  context "DELETE destroy" do
    it "should respond with a 204"
      delete :destroy, id: @resource.id
      response.code.should eql(204)
    end
  end
end
6 голосов
/ 15 марта 2017

Прошло несколько лет ...

Я просто хотел бы отметить, что можно использовать синтаксис expect и напрямую запрашивать код состояния.

describe ResourceController do
  context "DELETE destroy" do
    it "should respond with a 204"
      delete :destroy, id: @resource.id
      expect(response).to have_http_status(:no_content)
    end
  end
end
...