js.erb格式的控制器测试

Controller testing with js.erb format

本文关键字:控制器 测试 格式 erb js      更新时间:2023-09-26

我使用的是Rails 4.2.5,我已经为destroy操作编写了一个控制器测试,我正在使用ajax调用来destroy,并使用destroy.js.erb文件。当它调用js格式时,请帮助我解决以下问题以通过测试,我在下面粘贴错误。

  def destroy  
    @status = @song.destroy  
    respond_to do |format|  
      format.js  
    end  
  end  

Songs控制器测试#testrongshould_destroy_song:

ActionController::UnknownFormat: ActionController::UnknownFormat  
      app/controllers/songs_controller.rb:36:in `destroy' 

songs_controller_test.rb    
test "should destroy song" do  
    assert_difference('Song.count', -1) do  
      delete :destroy, id: @song  
    end  
    get :destroy, format:  'js'  
  end  

destroy.js.erb

var element = document.getElementById("<%="song#{@song.id}" %>");    
<%if @status%>  
element.parentNode.parentNode.remove();  
<%end%>  

destroy控制器操作通常对DELETE HTTP方法作出反应,因此在调用delete:时应使用format选项

test "should destroy song" do  
  assert_difference('Song.count', -1) do  
    delete :destroy, id: @song, format: :js
  end  
end