"컨트롤러/api/v1/bookings_controller.rb"에 배치 된 내 REST API 컨트롤러 중 하나를 테스트하려고합니다. 당신은 여기에서 볼 수있는 순간에만 JSON responds_to 컨트롤러 :레일 테스트, 게시물에 대한 경로를 지정하는 방법? (경로와 일치하는 경로 없음)
내 기능 시험은 "시험/기능/API/V1/bookings_controller_test.rb"에 위치하며, 다음과 같이 표시됩니다class Api::V1::BookingsController < ApplicationController
respond_to :json
before_filter :authenticate_user!
before_filter :get_user
def create
...
end
end
:
require 'test_helper'
class Api::V1::BookingsControllerTest < ActionController::TestCase
include Devise::TestHelpers
setup do
@booking = bookings(:one)
@user = users(:one)
sign_in @user
end
test "should return a bad request" do
post :create, :booking => { }, :format => 'json'
assert_response :bad_request
end
end
을 는 예약을 만들기위한 포스트 경로는 다음과 같습니다 (및 HTTP 클라이언트 테스트, 작동)
: 나는 테스트를 실행할 때
api_v1_user_bookings
GET /api/v1/users/:user_id/bookings(.:format) api/v1/bookings#index
POST /api/v1/users/:user_id/bookings(.:format) api/v1/bookings#create
그러나 (오류 MES를 참조 몇 가지 기본 경로를 사용하는 것 현자), 어떻게하면 테스트에서 올바른 경로를 지정할 수 있습니까? 아니면 여기서 볼 수없는 다른 실수가 있습니까?
test_should_return_a_bad_request(Api::V1::BookingsControllerTest):
ActionController::RoutingError: No route matches {:booking=>{}, :format=>"js
on", :controller=>"api/v1/bookings", :action=>"create"}
앗 남자, 감사, 그냥 몇 초 전 혼자 그것을 알아 냈다! –