加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 用于RSpec的未定义方法`它'(Hartl的Ruby o

发布时间:2020-12-16 23:21:06 所属栏目:百科 来源:网络整理
导读:我在Michael Hartl的RoR教程第8章中遇到了一个问题.测试失败,因为RSpec的“它”方法是“未定义的”.你见过类似的东西吗?可能是什么原因?我查了一切,和书中的一样…… 这是来自user_spec.rb的测试代码: describe User do before { @user = User.new(name:
我在Michael Hartl的RoR教程第8章中遇到了一个问题.测试失败,因为RSpec的“它”方法是“未定义的”.你见过类似的东西吗?可能是什么原因?我查了一切,和书中的一样……

这是来自user_spec.rb的测试代码:

describe User do

 before { @user = User.new(name: "Example User",email: "user@example.com",password: "foobar",password_confirmation: "foobar") }

 subject { @user }

 describe "remember token" do
 before { @user.save }
 its(:remember_token) { should_not be_blank }
end
...
...

测试运行的结果,它说:未定义的方法`它’为RSpec :: ExampleGroups :: User :: RememberToken:Class(NoMethodError):

MBP:sample_app smi$bundle exec rspec spec
/Users/smi/projects/sample_app/spec/models/user_spec.rb:12:in `block (2 levels) in <top (required)>': **undefined method `its' for RSpec::ExampleGroups::User::RememberToken:Class (NoMethodError)**
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `module_exec'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `subclass'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:219:in `block in define_example_group_method'
from /Users/smi/projects/sample_app/spec/models/user_spec.rb:10:in `block in <top (required)>'
from /Users/smi/.rvm/gems/ruby-2.0.0-p594/gems/rspec-core-3.1.7/lib/rspec/core/example_group.rb:325:in `module_exec'
from /Users/smi/.rvm/g.................

解决方法

你写下面的:
its(:remember_token) { should_not be_blank }

expect(subject.remember_token).not_to be_blank

阅读its isn’t core to RSpec和Arguments passed to its讨论.当你使用Rspec> = 3.0时,你就得到了错误.因为在此版本或更高版本中它不是Rspec核心的一部分.

您可以查看Rspec的当前One-liner syntax.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读