2015-11-09 121 views
1

我有兩個AJAX下拉菜單,第一個顯示CountryObjs,第二個顯示屬於該CountryObj的CityObjs。選擇不同的CountryObjs將發送一個AJAX請求,以更新新的CountryObj的CityObj。我想要一個簡單的測試,傳遞一個CountryObj並檢查返回的CityObjs。測試AJAX下拉菜單

的routes.rb

match '/update_cities', to: 'guides#update_cities', via: 'get' 

指南belongs_to的CityObj和CountryObj,他們反過來的has_many指南。

guides_controller.rb

def update_cities 
    @cities = CityObj.where("country_obj_id = ?", 
          params[:country_obj_id]).order(:name) 
          debugger 
    respond_to do |format| 
     format.js 
end 

我仍然在Rails的測試混淆。我沒有使用rspec。看着我那得到其他測試:索引,並獲得:節目,好像我應該能夠做到像下面通過一個CountryObj並進入update_cities方法:

test "ajax dropdown" do 
    get :update_cities, city_obj: CityObj.last 
end 

但是,這給出了一個錯誤

ActionController::UnknownFormat Exception: ActionController::UnknownFormat 

回答

1

要撥打的XmlHttpRequest使用GET(AJAX)請求,你應該嘗試這樣

test "ajax dropdown" do xhr :get, :update_cities, city_obj: CityObj.last end