【发布时间】:2016-01-04 19:09:09
【问题描述】:
我在运行一个只执行get :index 的测试时收到此错误。下面是测试代码:
class SubmissionsControllerTest < ActionController::TestCase
setup do
@submission = submissions(:one)
end
test "should get index" do
get :index
assert_response :redirect
# assert_not_nil assigns(:submissions)
end
尽管在我的 routes.rb 文件中,我为此控制器设置了一个路由:
resources :courses do
resources :assignments do
get 'export', :controller => 'assignments', :action => 'export'
resources :memberships
resources :submissions do
resources :evaluations do
delete 'destroy', controller: 'reviews', action: 'destroy'
end
end
resources :questions do
resources :responses
resources :scales
end
resources :reviews do
get :assign_reviews, :on => :collection
post :edit_review, :on => :collection
end
end
end
另外,这是我在运行 rake 路由时获得的提交路由:
course_assignment_submissions GET /courses/:course_id/assignments/:assignment_id/submissions(.:format) submissions#index
POST /courses/:course_id/assignments/:assignment_id/submissions(.:format) submissions#create
new_course_assignment_submission GET /courses/:course_id/assignments/:assignment_id/submissions/new(.:format) submissions#new
edit_course_assignment_submission GET /courses/:course_id/assignments/:assignment_id/submissions/:id/edit(.:format) submissions#edit
course_assignment_submission GET /courses/:course_id/assignments/:assignment_id/submissions/:id(.:format) submissions#show
PUT /courses/:course_id/assignments/:assignment_id/submissions/:id(.:format) submissions#update
DELETE /courses/:course_id/assignments/:assignment_id/submissions/:id(.:format) submissions#destroy
这是我的索引操作代码:
def index
if !current_user.instructor?(@course)
raise CanCan::AccessDenied.new("Not authorized!")
end
registrations = @course.registrations
@students = registrations.select{|r| !r.user.pseudo or @assignment.memberships.any?{|m| m.pseudo_user_id == r.user_id } }.map{|r| r.user }
respond_to do |format|
format.html # index.html.erb
format.json { render json: @students }
end
end
有谁知道这个错误可能来自哪里?
【问题讨论】:
-
你能添加你的测试代码吗?
-
刚刚添加了我的测试代码
-
能否包含测试代码的类(例如,
class SubmissionsController < ActiveSupport::TestCase)?此外,您似乎在routes.rb中的assignments块末尾缺少一个end。 -
类是:CoursesControllerTest
-
您没有在测试名称中包含类的顶部,并且错过了路线的终点或错误的意图,这确实会损害我们帮助您的机会。您甚至没有包含相关控制器的索引操作。
标签: ruby-on-rails ruby testing