Rspec未定义的局部变量或方法`matcher_name'

时间:2017-06-16 09:33:10

标签: ruby-on-rails rspec

启动rspec时遇到问题

Failure/Error:
       expect {
         post :create, params: {tag: attributes_for(:tag)}
       }.to change(Tag, :count).by(1)

     NameError:
       undefined local variable or method `matcher_name' for #<RSpec::Matchers::BuiltIn::Change:0x000000094f7348>
       Did you mean?  match_unless_raises

修改:

只有当我这样做时才会发生

rspec

而不是

bundle exec rspec

2 个答案:

答案 0 :(得分:1)

控制台错误日志说可能是你提供了错误的方法名称,这很清楚。您可以尝试更改正在使用的方法或变量的名称吗?

您也可以参考这个来获取这两个命令之间的区别  bundle exec rspec VS rspec spec

答案 1 :(得分:1)

始终将bundle exec与项目相关的二进制文件一起使用。没有它,可能会收到错误的版本。检查一下。

rspec --version
bundle exec rspec --version