2016-03-27 15 views
0

Rails 4.2.5を使用しています。destroyアクションのコントローラテストを作成しました.Ajaxコールを使用してdestroy.js.erbファイルを破棄して使用しています。 js形式を呼び出すときにテストに合格するために、次の問題を解決するのを手伝ってください。エラーを貼り付けています。js.erb形式のコントローラテスト

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

SongsControllerTest#1 test_should_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%> 
+0

質問に応じてコードをフォーマットし、テストコードも表示してください。 – BoraMa

+0

[Railsで、Javascriptの応答形式をどのように機能テストしますか?](http://stackoverflow.com/questions/2358214/in-rails-how-do-you-functional-test-a-javascript-レスポンス形式) – BoraMa

+0

上記のリンクを試してみる前に、エラーが解消されていません –

答えて

2

destroyコントローラのアクションが正常にDELETE HTTPメソッドに反応するので、あなたはときformatオプションを使用する必要があります電話delete

test "should destroy song" do 
    assert_difference('Song.count', -1) do 
    delete :destroy, id: @song, format: :js 
    end 
end 
関連する問題