undefined方法`double'for

时间:2015-02-02 19:58:20

标签: 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的每种方法都是如此,例如:'allow','receive'等。 有谁知道,为什么会这样?

1 个答案:

答案 0 :(得分:2)

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

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