首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >主厨:DataBag和RSpec-mocks未定义的“接收”方法

主厨:DataBag和RSpec-mocks未定义的“接收”方法
EN

Stack Overflow用户
提问于 2014-10-17 16:49:27
回答 1查看 463关注 0票数 0

我正试图为list类创建一个Chef::DataBag方法存根,如下所示:

代码语言:javascript
复制
$ cat spec/spec_helper.rb 
require "rspec"

RSpec.configure { |config|
  config.mock_framework = :rspec
  config.mock_with :rspec
}

$ cat spec/test_spec.rb 
require "spec_helper"
require "chef"

RSpec.describe "test" do
  describe "simple test" do
    it "mocks chef databag" do
      allow(Chef::DataBag).to recieve(:list).and_return {}
    end
  end
end

$ grep "rspec \|chef " Gemfile.lock | head -n 2
  gem "chef", "11.16.4"
  gem "rspec", "3.1.0"

在执行rspec时,我会得到以下错误。

代码语言:javascript
复制
$ bundle exec rspec spec/test_spec.rb 
F

Failures:

  1) test simple test mocks chef databag
     Failure/Error: allow(Chef::DataBag).to recieve(:list).and_return {}
     NoMethodError:
       undefined method `recieve' for #<RSpec::ExampleGroups::Test::SimpleTest:0x000000049964f8>
     # ./spec/test_spec.rb:7:in `block (3 levels) in <top (required)>'

Finished in 0.00048 seconds (files took 0.53998 seconds to load)
1 example, 1 failure

Failed examples:

rspec ./spec/test_spec.rb:6 # test simple test mocks chef databag

这就是我如何验证Chef::DataBaglist方法的方式:

代码语言:javascript
复制
$ bundle exec ruby -e "require 'chef'; puts Chef::DataBag.methods" | grep list
list

你能指出出什么问题了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-17 16:57:57

你拼错了“接收”试试这个:

代码语言:javascript
复制
allow(Chef::DataBag).to receive(:list).and_return {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26429787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档