gpt4 book ai didi

ruby-on-rails - 如何使用 rspec 测试带有嵌套路由的 Controller

转载 作者:行者123 更新时间:2023-12-03 15:08:49 26 4
gpt4 key购买 nike

我用 InherritedResource 创建 Controller

class AppsController < InheritedResources::Base
belongs_to :company

# Devise
before_filter :login_or_oauth_required
# CanCan
load_and_authorize_resource
end

并尝试通过此方法使用 Rspec 对其进行测试
require "spec_helper"

include Devise::TestHelpers

describe AppsController do
before(:each) do
@company_1 = Factory.build(:company)
application_1 = Factory.create(:application, :company => @company_1)
application_2 = Factory.create(:application, :company => @company_1)
application_3 = Factory.create(:application, :company => @company_1)
@company_2 = Factory.build(:company)

@user_1 = Factory.create(:user)
role_1 = Factory.create(:publisher_role, :company => @company_1)
profile_1 = Factory.create(:profile, :company => @company_1, :user => @user_1, :roles => [role_1])
end

describe "index action" do
it "user_1 should have 3 applications from company_1" do
sign_in @user_1
params = {"company_id"=>"1"}
get :index
assigns[:apps].should have(3).items
end
end
end

结果是
Failure/Error: get :index
ActionController::RoutingError:
No route matches {:controller=>"apps"}

如何告诉 Rspec “进入”我的嵌套路由

我的路线
  resources :companies do
resources :apps do
resources :shelves do
resources :publications
end
end
end

我试着关注这个问题 How to test controllers with nested routes using Rspec?但这不适用于我的情况

我使用 Rails 3.1.1 和 rspac 2.7

最佳答案

我找到了解决方案:-P

我所做的只是为了改变

get :index


get :index, :company_id => @company_1.id

关于ruby-on-rails - 如何使用 rspec 测试带有嵌套路由的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7962285/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com