컨트롤러 사양에 대한 AJAX 요청을 테스트하고 싶습니다. 제품 코드는 다음과 같습니다. 저는 Devise를 인증에 사용하고 있습니다.RSpec으로 ajax POST 요청을 테스트하려면 어떻게해야합니까?
class NotesController < ApplicationController
def create
if request.xhr?
@note = Note.new(params[:note])
if @note.save
render json: { notice: "success" }
end
end
end
end
사양은 다음과 같습니다.
describe NotesController do
before do
user = FactoryGirl.create(:user)
user.confirm!
sign_in user
end
it "has a 200 status code" do
xhr :post, :create, note: { title: "foo", body: "bar" }, format: :json
response.code.should == "200"
end
end
나는 응답 코드가 200이 될 것으로 예상하지만, 내가 RSpec에 던졌습니다 요청이 authenticity_token 또는 뭔가 부족하기 때문에이 있어야합니다 생각 (401) 반환합니다. 내가 어떻게 찌를 수 있니?
도움을 주시면 감사하겠습니다.
감사합니다. 나는이 팁을 시도했지만 아무런 변화도주지 않았다. 그리고 나는 csrf가 약간의 불안정한 설정을하는 것을 느낀다. – morygonzalez
-1 CSRF 보호를 사용하지 않도록 설정하면이 문제를 해결할 수 없습니다. –