Rspec 水豚警告“检查预期的零文本”
当我运行测试时,我碰巧在终端窗口中看到我正在运行的特定功能规范:Rspec 水豚警告“检查预期的零文本”,rspec,capybara,Rspec,Capybara,当我运行测试时,我碰巧在终端窗口中看到我正在运行的特定功能规范: Checking for expected text of nil is confusing and/or pointless since it will always match. Please specify a string or regexp instead. 我不相信我的代码有任何不正确的使用nil的地方,所以我想知道它是什么意思。我也没有在任何rspec期望或水豚方法中使用nil。有什么方法可以帮助我进一步排除此消息
Checking for expected text of nil is confusing and/or pointless since it will always match.
Please specify a string or regexp instead.
我不相信我的代码有任何不正确的使用nil的地方,所以我想知道它是什么意思。我也没有在任何rspec期望或水豚方法中使用nil。有什么方法可以帮助我进一步排除此消息的故障吗?这是由于在检查例如expectpage.to时变量为nil而导致的,在本例中,user.middle\u name为nil,因为用户没有中间名 警告消息在gems目录/gems/capybara-x.x.x/lib/capybara/querys/text_query.rb中发出 为了找出nil检查发生在哪里,我在警告之前检查nil 您将在规范中出现运行时错误的行中获得该错误
RuntimeError
here I check for nil
# ... stack trace omitted
# ./spec/requests/user_show_spec.rb:45:in `block (2 levels) in <top (required)>
我在使用实例变量时犯了一个错误,比如page.should有_text@foo,但我没有在任何地方使用或初始化@foo。我犯了一个严重错误。请显示您的规范-如果nil作为预期值传递给文本匹配器,则Capybara只会输出该消息。跟踪已添加,因此在下一个版本中应该会更容易。