2015-02-02 5 views
2

У меня проблема с использованием rspec-mocks.undefined метод `double 'for

список расслоения показывает:

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, get и т. Д. Кто-нибудь знает, почему это происходит?

ответ

2

Вы заявили, что хотите использовать RSpec mocks? Обычно это делается в файле spec_helper.rb:

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

Ну, это сработало для меня, но у меня есть дополнительный вопрос. Где это задокументировано? Я не могу найти, что конфигурация mocks требуется в документации rspec-mocks. – kendriu

+0

Найдите здесь документацию: https://www.relishapp.com/rspec/rspec-core/v/3-1/docs/mock-framework-integration/mock-with-rspec. В документации указано, что 'rspec' является значением по умолчанию , но, похоже, это не так просто ... – spickermann