未定义 method/variable 错误,找不到原因

Undefined method/variable error, can't find cause

不明白为什么要认证?对于没有摘要的用户来说不是错误的。 当我 运行 下面的模型测试时,出现以下错误:

ERROR["test_authenticated?_should_return_false_for_a_stakeholder_with_nil_digest", StakeholderTest, 0.906488841]
 test_authenticated?_should_return_false_for_a_stakeholder_with_nil_digest#StakeholderTest (0.91s)
NoMethodError:         NoMethodError: undefined method `authenticated?' for nil:NilClass
            test/models/stakeholder_test.rb:126:in `block in <class:StakeholderTest>'
        test/models/stakeholder_test.rb:126:in `block in <class:StakeholderTest>'

这是对应的测试(第126行指的是assert_not行):

  test "authenticated? should return false for a stakeholder with nil digest" do
    assert_not @stakeholder.authenticated?('')
  end

这是认证的?方法:

  def authenticated?(remember_token)
    return false if remember_digest.nil?
    BCrypt::Password.new(remember_digest).is_password?(remember_token)
  end

方法和测试都是从 Hartl 的教程中直接采用的(只是用利益相关者替换了用户),所以我不明白我可能做错了什么。

我找到原因了: 在测试文件的 def 设置中有一个拼写错误,因此 @stakeholder 未定义。