Tôi muốn sửa đổi một số thứ trong bộ điều khiển và kiểm tra chúng bằng rspec. Tôi muốn tạo hành động new
cho Spree::ProductsController
. Đây là những gì tôi đã cố gắngLàm thế nào để viết kiểm tra cho trang trí bộ điều khiển spree?
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
Nhưng nó sử dụng ban đầu Spree::Controller
và cho
Failure/Error: get :new
ActionController::RoutingError:
No route matches {:controller=>"spree/products", :action=>"new"}
Nếu bất cứ ai có thể xô tôi đi đúng hướng thì nó muốn tuyệt vời.
Xin lỗi nó đã là 'Spree :: ProductsController', đã sửa, nhưng lỗi vẫn còn – benchwarmer
Tôi đã chỉnh sửa câu trả lời bằng một bước bổ sung mà bạn có thể sử dụng. Chúng tôi sử dụng điều này trong một số ứng dụng Spree để kiểm tra trang trí với rspec. – gmacdougall
Đã thêm các tuyến đường như được đề xuất .. vẫn không xác định được các tuyến đường – benchwarmer