如何在Rails中测试RSpec中的204响应?

Cof*_*ite 10 ruby rspec ruby-on-rails shoulda

我正在测试我的资源控制器的删除操作,如下所示:

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

我期待204 /无内容的回复.但是,此测试失败,因为服务器返回的响应是406.当我直接从我的Rest测试客户端命中控制器时,响应是204.

Gaz*_*ler 7

页面显示如何测试响应代码.

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
Run Code Online (Sandbox Code Playgroud)


hfh*_*hc2 6

几年过去了...

我只想指出,可以使用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
Run Code Online (Sandbox Code Playgroud)