【发布时间】:2015-02-02 20:45:49
【问题描述】:
我正在为我的应用程序使用 Rails 测试,当我运行这个测试时
class ShowingQuizzesTest < ActionDispatch::IntegrationTest
include Devise::TestHelpers
setup { host! 'example.com' }
test 'return quiz by id' do
instructor=Instructor.create(name:"same7", email:"abcdefg@eng.asu.edu.com", password:"123abc")
sign_in instructor
quiz = Quiz.create(name: 'Quiz1', subject: 'physics', duration: 10, no_of_MCQ: 5, no_of_rearrangeQ: 5)
current_instructor.quizzes << quiz
get "api/quizzes/#{quiz.id}"
assert_equal 200, response.status
quiz_response = json(response.body)
assert_equal quiz.name, quiz_response[:name]
end
end
出现此错误: 1) 错误: ShowingQuizzesTest#test_return_quiz_by_id: NoMethodError: nil:NilClass 的未定义方法 `env'
我正在测试的方法:
def show
current_instructor.quizzes.find(params[:id])
render json: data:{:quiz => quiz}, status: 200
end
【问题讨论】:
-
你能把你正在测试的方法也贴出来
-
def create //quiz = Quiz.new(quiz_params) //if quiz.save //current_instructor.quizzes quiz}, info:{} }, status: 201 //else //render json: { success: false, data:{}, :info => quiz.errors }, status: 422 //end //end / /private //def quiz_params //params.require(:quiz).permit(:name, :subject, :duration, :no_of_MCQ, :no_of_rearrangeQ) //end
-
@Finks 再看看我更新的问题。
标签: ruby-on-rails testing devise