【问题标题】:Rails 4.0 Engine and nested Routing testing with Rspec 3使用 Rspec 3 进行 Rails 4.0 引擎和嵌套路由测试
【发布时间】:2015-06-19 18:52:45
【问题描述】:

我写了一个引擎:

module MercatorMpay24
  class Admin::PaymentsController < ::Admin::AdminSiteController
    def check_confirmation
      @payment = Payment.find(params[:id])
    end
  end
end

并定义了一条路线:

MercatorMpay24::Engine.routes.draw do
  namespace :admin do
    get 'payments/:id/check_confirmation' => 'payments#check_confirmation', 
        :as => 'check_confirmation'
  end
end

工作正常,可以调用、响应、...

现在我想对它进行单元测试:

require 'spec_helper'
describe MercatorMpay24::Admin::PaymentsController, :type => :controller do
  describe "GET #check_confirmation" do
    it "finds the payment" do
      @payment = create(:payment)
      get :check_confirmation, id: @payment.id
      expect(assigns(:payment)).to eql @payment
    end
  end
end

但这给了我一个错误:

No route matches {:action=>"check_confirmation",
:controller=>"mercator_mpay24/admin/payments", :id=>"1"}

rake routes | grep check_confirmation 给了我:

admin_check_confirmation GET  /admin/payments/:id/check_confirmation(.:format) 
mercator_mpay24/admin/payments#check_confirmation

我想,我在这里的命名空间有问题,但我不知道,什么....

【问题讨论】:

    标签: ruby-on-rails-4 routes rspec3


    【解决方案1】:

    我不见了:

    routes { MercatorMpay24::Engine.routes }
    

    在控制器规范中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-08-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多