RSpec FAIL – Testing Rails ‘destroy’
I’m writing some specs for Citrulu and was scratching my head about this one for a while:
When writing specs for Controllers, some http methods accept a hash as an input:
it "assigns the requested test_file as @test_file" do controller.stub(:check_ownership!) get :edit, {:id => @test_file.to_param} assigns(:test_file).should eq(@test_file) end
However with delete, this doesn’t work – the following fails to call the destroy action:
it "Calls 'delete!' on the model" do TestFile.any_instance.should_receive(:delete!) delete :destroy, {id: @test_file.to_param}, format: 'js' end
The correct syntax is to pass id: as a parameter instead of a hash:
it "Calls 'delete!' on the model" do TestFile.any_instance.should_receive(:delete!) delete :destroy, id: @test_file.to_param, format: 'js' end