Rspec을 사용하여 Rails API에 유효하지 않은 DELETE 요청을 확인하는 테스트를 작성하고 있습니다.Rails JSON API 테스트에서 예외가 발생할 때 json을 반환하지 않습니다.
이 내가 가진 무엇 :
context 'invalid id number' do
it 'returns success: false' do
xhr :delete, :destroy, id: 999999999999999999
expect(JSON.parse(response.body)['success']).to be_false
end
end
포스트 그레스 (예상대로) 정수 오버 플로우 예외의 어떤 종류가 발생하지만,이 형성된 적이 있기 때문에 내 사양에 내가 JSON 객체를 볼 수 없습니다. 빈 문자열 대신 {success : false}를 반환하려면 어떻게해야합니까? 예외에도 불구하고 JSON 객체를 강제로 반환하려면 어떻게해야합니까? 내가 JSON 개체를보고 놀리려는를 사용하는 경우
, 나는이 오류가 : response.body가 빈 문자열 ""
워로 평가되므로 JSON::ParserError: A JSON text must at least contain two octets!
가 거의 컨트롤러 코드를 포함하는 것을 잊었다. 그것의 소리에 의해
def destroy
if (site == ::MyModel.find(params[:id]))
site.destroy
render :json => {success: true}
else
render :json => {success: false}
end
당신은'find_by (id : ...)'를 사용하고'site.present? '를 사용하여 질의를 저장할 수 있습니다. 이렇게하면'empty? '에 대한 쿼리를 실행하는 것을 피할 수 있습니다. – rafb3