【发布时间】:2013-08-08 11:22:50
【问题描述】:
我想修改控制器中的一些内容并使用 rspec 对其进行测试。我想为Spree::ProductsController 创建new 操作。这是我尝试过的
routes.rb
resources :products
prodcuts_controller_decorator.rb
Spree::ProductsController.class_eval do
before_filter :authenticate_spree_user!, :except => [:show, :index]
def new
@product = current_user.products.build
end
end
products_controller_spec.rb
require 'spec_helper'
describe Spree::ProductsController do
let(:user) {create(:user)}
before(:each) do
Spree::Core::Engine.routes
BigPlanet::Application.routes
controller.stub :spree_current_user => user
end
it "render new template" do
get :new
response.should render_template(:new)
end
end
end
但它使用原始的Spree::Controller 并给出了
Failure/Error: get :new
ActionController::RoutingError:
No route matches {:controller=>"spree/products", :action=>"new"}
如果有人能把我推向正确的方向,那就太好了。
【问题讨论】:
标签: ruby-on-rails rspec spree