spec / helpers / application_helper_spec.rb无法传递:nil的未定义方法`load_session':NilClass

时间:2013-07-18 08:09:12

标签: ruby-on-rails rspec2 rspec-rails

我是Rails的新手,并且正在关注Michael Hartl的Rails教程。我在第5章中遇到了rspec的问题。这是麻烦的spec / helpers / application_helper_spec.rb:

require 'spec_helper'
describe ApplicationHelper do
  describe "full_title" do
    it "should include the page title" do
      full_title("foo").should =~ /foo/
    end
  end
end

和bin / rspec spec / helpers / application_helper_spec.rb给出:

Failure/Error: Unable to find matching line from backtrace
     NoMethodError:
       undefined method `load_session' for nil:NilClass

我在app / helper / application_helper.rb中定义了ApplicationHelper,并且spec / requests中的测试过去没有问题。 关于发生了什么的任何想法?提前谢谢!

这是app / helper / application_helper.rb

module ApplicationHelper
  # Returns the full title on a per-page basis.
  def full_title(page_title)
    base_title = "Ruby on Rails Tutorial Sample App"
    if page_title.empty?
      base_title
    else
      "#{base_title} | #{page_title}"
    end
  end
end

如果有人想要它,这里是spec / spec_helper.rb: http://dpaste.com/1309484/

宝石的版本: http://dpaste.com/hold/1309485/

被修改

好吧,我认为这是一个spork问题,但我不确定,因为如果我用这个替换require“spec_helper”行:

require "/home/charlie/rails_projects/sample_app/app/helpers/application_helper.rb"
RSpec.configure do |c|
   c.include ApplicationHelper
end

测试过去了。我所有的spec_helper都是设置spork。那我的spec_helper.rb有问题吗?

1 个答案:

答案 0 :(得分:0)

似乎可以通过将guard-spork更新为1.4.2来解决,并且

bundle install