RecordNotFound возникает при использовании поиска _по _идентификатору для получения несуществующей -записи в RSpec

I' Я написал эту спецификацию в product _controller _spec.rb, которая предназначена для тестирования перенаправления, когда уничтожение вызывается для несуществующей -записи:

it "deleting a non-existent product should redirect to the user's profile page with a flash error" do           
    delete :destroy, {:id => 9999}
    response.should redirect_to "/profile"
    flash[:error].should == I18n.t(:slideshow_was_not_deleted)
end

Вот действие контроллера в products _controller. rb:

def destroy
  product = Product.find_by_id(params[:id])
  redirect_to "profile" if !product
  if product.destroy
    flash[:notice] = t(:slideshow_was_deleted)
    if current_user.admin? and product.user != current_user
      redirect_to :products, :notice => t(:slideshow_was_deleted)
    else
      redirect_to "/profile"
    end
  else
    if current_user.admin?
      redirect_to :products, :error => t(:slideshow_was_not_deleted)
    else
      redirect_to "/profile"
    end
  end
end

Теперь я не ожидал, что спецификация пройдет с первого раза, но я не понимаю, почему она терпит неудачу с этим:

Failure/Error: delete :destroy, {:id => 9999}
 ActiveRecord::RecordNotFound:
   Couldn't find Product with id=9999

У меня сложилось впечатление, что #find _по _id не возвращать ошибку RecordNotFound для несуществующей записи -. Так почему же я получаю ее? Заранее спасибо!

6
задан theflyingbrush 17 April 2012 в 11:23
поделиться