2015-04-14 2 views
5

Я работаю над своим первым камнем Ruby и имеет комплектные огурцы, rspec и матчи для тестирования. Когда я бегу RSpec, я получаю следующее сообщение об ошибке:проверка моего драгоценного камня Ruby: неопределенный метод `configure 'для Shoulda :: Matchers: Module (NoMethodError)

/app/my_gem/spec/spec_helper.rb:6:in `<top (required)>': undefined method `configure' for Shoulda::Matchers:Module (NoMethodError) 

Вот мой gemspec:

# my_gem.gemspec 
... 
Gem::Specification.new do |spec| 
    ... 
    ... 
    spec.add_development_dependency "activemodel" 
    spec.add_development_dependency "bundler", "~> 1.8" 
    spec.add_development_dependency "cucumber" 
    spec.add_development_dependency "rake", "~> 10.0" 
    spec.add_development_dependency "rspec" 
    spec.add_development_dependency "shoulda-matchers" 
end 

Мои spec_helper.rb:

require 'my_gem' 
require 'pry' 
require 'shoulda/matchers' 

Shoulda::Matchers.configure do |config| 
    config.integrate do |with| 
    with.test_framework :rspec 

    # with.library :active_record 
    with.library :active_model 
    # with.library :action_controller 
    # Or, choose all of the above: 
    # with.library :rails 
    end 
end 

Это найти Shoulda :: Matchers но не .configure по какой-то причине. Я требую, чтобы shoulda неправильно? Не уверен, что это связано, но rspec также дает мне это предупреждение:

WARN: Unresolved specs during Gem::Specification.reset: 
    json (>= 1.7.7, ~> 1.7) 
    minitest (~> 5.1) 
WARN: Clearing out unresolved specs. 
Please report a bug if this causes problems. 

Спасибо за любые указатели!

ответ

10

Похоже, вы пытаетесь использовать документацию для версии 3.0a.alpha-сокетов, которая поддерживает 3.0.0.alpha, но использует старую версию. Либо см правильной документации для версии, которую вы используете (я предполагаю, 2.8.x) или обновить Gemfile использовать 3.0.0.alpha:

gem 'shoulda-matchers', github: 'thoughtbot/shoulda-matchers' 

Затем запустите bundle install и Shoulda::Matchers.configure должны начать работать.

+1

Спасибо, вы были совершенно правы. Я использую 2.8.0, и блок конфигурации не нужен – sixty4bit

+0

это ошибка, мне понадобилось некоторое время, чтобы выяснить ошибку при запуске установки пакета – Katarzyna

Смежные вопросы