2015-11-09 88 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