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