Ruby on rails 3 Rspec+;Url帮助程序+;自定义\u帮助程序\u规范
我正在尝试测试一个助手,但出现以下错误:Ruby on rails 3 Rspec+;Url帮助程序+;自定义\u帮助程序\u规范,ruby-on-rails-3,rspec,rspec2,helper,Ruby On Rails 3,Rspec,Rspec2,Helper,我正在尝试测试一个助手,但出现以下错误: Admins::ProductsHelper #product_post_permission when product can do post creates cannot post link with green button (FAILED - 1) when product cannot do post creates can post link with red button (FAILED - 2)
Admins::ProductsHelper
#product_post_permission
when product can do post
creates cannot post link with green button (FAILED - 1)
when product cannot do post
creates can post link with red button (FAILED - 2)
Failures:
1) Admins::ProductsHelper#product_post_permission when product can do post creates cannot post link with green button
Failure/Error: helper.product_post_permission(@product)
NoMethodError:
undefined method `cannot_post_admins_product_path' for #<#<Class:0xc64a33c>:0xc65e24c>
# ./app/helpers/admins/products_helper.rb:6:in `product_post_permission'
# ./spec/helpers/admins/products_helper_spec.rb:13:in `block (4 levels) in <top (required)>'
2) Admins::ProductsHelper#product_post_permission when product cannot do post creates can post link with red button
Failure/Error: helper.product_post_permission(@product)
NoMethodError:
undefined method `can_post_admins_product_path' for #<#<Class:0xc64a33c>:0xc66f600>
# ./app/helpers/admins/products_helper.rb:8:in `product_post_permission'
# ./spec/helpers/admins/products_helper_spec.rb:24:in `block (4 levels) in <top (required)>'
这是我的路线:
namespace :admins do
resources :dashboard, only: [:index]
resources :users, only: [:show, :edit, :update, :index]
resources :products, only: [:show, :edit, :update, :index, :new, :create] do
member do
put 'can_post'
put 'cannot_post'
put 'publish'
put 'unpublish'
end
end
end
我使用的是Rails 3.2.13和Rspec Rails 2.13。提前感谢。您在哪里定义了
不能发布管理员产品路径
和可以发布管理员产品路径
?这些都是奇怪的命名路线。请查看帖子,我刚刚更新并添加了路线。
require 'spec_helper'
describe Admins::ProductsHelper do
describe "#product_post_permission" do
context "when product can do post" do
before(:each) do
@product = FactoryGirl.create(:product)
end
it "creates cannot post link with green button" do
helper.should_receive(:post_permission_link)
helper.product_post_permission(@product)
end
end
context "when product cannot do post" do
before(:each) do
@product = mock_model(Product, can_post?: false)
end
it "creates can post link with red button" do
helper.should_receive(:post_permission_link)
helper.product_post_permission(@product)
end
end
end
end
namespace :admins do
resources :dashboard, only: [:index]
resources :users, only: [:show, :edit, :update, :index]
resources :products, only: [:show, :edit, :update, :index, :new, :create] do
member do
put 'can_post'
put 'cannot_post'
put 'publish'
put 'unpublish'
end
end
end