Rspec-rails: #helper-Methode gibt nil in der Helferspezifikation zurück [Rails 3.1]

Erstellt am 21. Sept. 2011  ·  3Kommentare  ·  Quelle: rspec/rspec-rails

Ich habe eine Helferspezifikation wie die folgende:

require "spec_helper"

describe UsersHelper do
  before(:each) do
    <strong i="6">@user</strong>  = User.make!
  end

  describe "#link_to_user" do
    html = self.helper.link_to_user(@user)

    html.should include(@user.nickname)
    html.should include(user_path(@user))
  end
end

Und diese Spezifikation schlägt mit folgendem Fehler fehl:

/home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/activesupport-3.1.0/lib/active_support/whiny_nil.rb:48:in `method_missing': undefined method `link_to_user' for nil:NilClass (NoMethodError)
    from /home/sotakone/work/weedburg/spec/helpers/users_helper_spec.rb:9:in `block (2 levels) in <top (required)>'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:142:in `module_eval'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:142:in `subclass'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:129:in `describe'
    from /home/sotakone/work/weedburg/spec/helpers/users_helper_spec.rb:8:in `block in <top (required)>'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:142:in `module_eval'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:142:in `subclass'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/example_group.rb:129:in `describe'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/dsl.rb:5:in `describe'
    from /home/sotakone/work/weedburg/spec/helpers/users_helper_spec.rb:3:in `<top (required)>'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in `load'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in `block in load_spec_files'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in `map'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/configuration.rb:419:in `load_spec_files'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/command_line.rb:18:in `run'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:80:in `run_in_process'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:69:in `run'
    from /home/sotakone/.rvm/gems/ruby-1.9.2-p180@global/gems/rspec-core-2.6.4/lib/rspec/core/runner.rb:11:in `block in autorun'

Ich verwende rspec-rails 2.6.1 und rails 3.1.0.

Hilfreichster Kommentar

Er hat die Spezifikationen nicht in einen it -Block gesteckt, falls Sie sich fragen.

Alle 3 Kommentare

ich bin dumm, tut mir leid

Er hat die Spezifikationen nicht in einen it -Block gesteckt, falls Sie sich fragen.

Vielen Dank für die Veröffentlichung, denn ich habe gerade nach diesem Problem gegoogelt und den gleichen Fehler gemacht!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen