【问题标题】:After hook error in rspec在 rspec 中的钩子错误之后
【发布时间】:2013-06-26 11:45:24
【问题描述】:
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'

提前致谢。

【问题讨论】:

  • 你能提供一些代码吗?
  • 当我在终端中给出命令“rspec spec”时,它会产生类似上面的错误。它会在整个规范中连续显示。检查错误路径时,存在名为 original_path_set 的方法。但不知道如何解决此问题。
  • 能否提供您的规范代码
  • `require 'spec_helper' describe StudentsController do fixtures :all context "#profile" do let(:school) { Factory.create(:school_1) } before do session[:email] = user.email session[:user_id] = user.id 结束它“应该将用户分配给@user”做 User.stub(:find).with(user.id).and_return(user) get :profile assigns[:user].should eql(user) end end end'
  • 请更新您的问题以包含您刚刚提供的代码,最后请使用 markdown synax 缩进您的代码 :)

标签: ruby-on-rails rspec


【解决方案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

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

【讨论】:

    【解决方案2】:

    我今天遇到了这个问题。

    原来我忘记在数据库更改后执行rake db:test:prepare,然后再次运行测试套件。

    【讨论】:

    • 我不认为这是一个笼统的答案,这可能是您本地设置的原因。也可能是数据库清理器设置无法正常工作的原因。由于钩子基本上是您希望在每个示例之前和之后执行的任意代码。
    猜你喜欢
    • 2014-02-11
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-01
    • 1970-01-01
    相关资源
    最近更新 更多