0
require 'spec_helper'

describe StudentsController do
  fixtures :all

  context "#profile" do
    let(:school) { Factory.create(:school_2) }

    before do
      session[:email] = user.email
      session[:user_id] = user.id
    end

    it "should assign the user to @user" do
      User.stub(:find).with(user.id).and_return(user)
      get :profile
      assigns[:user].should eql(user)
    end
  end
end

在后挂钩中发生错误:

NoMethodError: undefined method `original_path_set' for nil:NilClass
occurred at /home/qbadmin/.rvm/gems/ruby-1.9.3-p194/gems/rspec-rails-2.13.1/lib/rspec/rails/view_rendering.rb:121:in `block (2 levels) in <module:ViewRendering>'

这是我rspec spec从命令行运行时遇到的错误。谁能帮我弄清楚问题是什么?

我在 Gemfile 中指定的 RSpec 版本是:

gem 'rspec', '~> 2.13',
gem 'rspec-rails', '~> 2.13'

提前致谢。

4

2 回答 2

-1

在你的 gemfile 中,你应该有这样的东西,以便 rspec 正常工作

group :test, :development do
  gem 'rspec-rails', '~> 2.13.2'
end

我还建议您查看database_cleaner gem

group :test do
  gem 'database_cleaner', '~> 1.0.1'
end

关于您的问题,经过少量研究,似乎 rspec 如何获取您的规范文件的路径存在问题。您能否确认上述规格写在以下文件中?

spec/controllers/students_controller_spec.rb

你也可以复制/粘贴你的控制器代码吗?

于 2013-06-27T07:26:50.633 回答
-2

我今天有这个确切的问题。

事实证明rake db:test:prepare,在再次运行测试套件之前,我忘记了在更改数据库之后进行操作。

于 2014-03-26T13:44:06.037 回答