0

我不断收到的错误如下:

 test_should_get_show(CartsControllerTest):
    ActionController::RoutingError: No route matches {:cart=>"1", :controller=>"carts", :action=>"show"}

当我运行以下代码时:

 def setup
    @cart = FactoryGirl.create(:cart)
  end

  test "should get show" do
    sign_in(FactoryGirl.create(:user, admin: true))
    session[:cart_id] = @cart.id 
    get :show, cart: @cart
    assert_response :success
    assert_not_nil assigns(:product_requests)
  end

我的购物车工厂:

FactoryGirl.define do
  factory :cart do
    factory :cart_with_1_row do
      after(:create) do |cart|
        FactoryGirl.create(:cart_row, cart: cart)
      end
    end
  end
end

但是,在我的 rake 路线中,我有:

cart GET /carts/:id(.:format) carts#show

我也可以http://localhost:3000/carts/1在开发环境的浏览器中手动进入,它工作正常。

这可能是什么原因造成的?

4

1 回答 1

1

代替:

get :show, cart: @cart

和:

get :show, id: @cart  # or @cart.id
于 2012-09-04T19:47:03.907 回答