ruby - 未定义方法 `double'

标签 ruby rspec mocking ruby-1.8.7

我在使用 rspec-mocks 时遇到问题。

捆绑列表显示:

Gems included by the bundle:
  * CFPropertyList (2.2.8)
  * builder (3.2.2)
  * bundler (1.7.12)
  * ci_reporter (1.9.3)
  * diff-lcs (1.2.5)
  * excon (0.44.0)
  * facter (2.4.0)
  * hiera (1.3.4)
  * json_pure (1.8.2)
  * metaclass (0.0.4)
  * mocha (1.1.0)
  * puppet (3.7.4)
  * puppet-lint (1.1.0)
  * puppet-syntax (1.4.1)
  * puppetlabs_spec_helper (0.8.2)
  * rake (10.4.2)
  * rcov (1.0.0)
  * rspec (3.1.0)
  * rspec-core (3.1.7)
  * rspec-expectations (3.1.2)
  * rspec-legacy_formatters (1.0.0)
  * rspec-mocks (3.1.3)
  * rspec-puppet (1.0.1)
  * rspec-support (3.1.2)

我的rspec:

require 'spec/spec_helper'

describe 'My behaviour' do

  it 'should do something' do
    t = double()
  end
end

据我所知,我做的一切都是正确的,但是在测试执行过程中我不断收到此类错误:

1) My behaviour should do something
     Failure/Error: Unable to find matching line from backtrace
     NoMethodError:
       undefined method `double' for #<RSpec::ExampleGroups::MyBehaviour:0x10275f168>
     # ./spec/puppet/util/network_device/netapp_e/my_example_spec.rb:8

rspec-mocks 中的每个方法也是如此,例如:“允许”、“接收”等。 有谁知道为什么会发生这种情况?

最佳答案

您是否声明要使用 RSpec 模拟?通常这是在 spec_helper.rb 文件中完成的,如下所示:

RSpec.configure do |config|
  config.mock_framework = :rspec
end

关于ruby - 未定义方法 `double',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28285719/

相关文章:

javascript - form_for 表单的字符计数器未实时更新计数

ruby - Vim 详细介绍了 Rails 的自动完成功能

html - 在两个 HTML 注释之间进行选择的 XPath?

ruby-on-rails - 无法使用 rspec Controller POST 创建操作(设计和 cancan)进行测试

ruby - Rspec - 捕获 linux 进程的 stderr 输出

ruby - 如何使用 Ruby 的文件方法将一个文件的内容复制到另一个文件?

ruby-on-rails - Rspec 中预期错误和其他状态

php - 如何使用 PHPUnit 重置模拟对象

c# - 模拟存储库和测试参数化服务方法

Python3模拟用另一个函数替换函数