Проблема Rspec с методом

#ruby-on-rails #ruby-on-rails-3 #rspec #ruby-on-rails-3.2

#ruby-on-rails #ruby-on-rails-3 #rspec #ruby-on-rails-3.2

Вопрос:

Я пытаюсь выполнить простую проверку, основная проблема, с которой я сталкиваюсь, — это версия Rails (я использую RSpec с Rails 4), потому что я использую ее с Rails 3.2 и Ruby 1.9.3.

Это код в моей модели

 expect(section).to have(1).errors_on(:name)
  

и он возвращает эту ошибку

 1) Admin::Section is invalid without name
 Failure/Error: expect(section).to have(1).errors_on(:name)
 NoMethodError:
   undefined method `have' for #<RSpec::ExampleGroups::AdminSection:0x007f81cf6e72d0>
  

Мой список драгоценных камней таков

 * rspec-core (3.0.1)
* rspec-expectations (3.0.1)
* rspec-mocks (3.0.1)
* rspec-rails (3.0.1)
* rspec-support (3.0.0)
  

Я могу передать его с помощью should be_valid, но он устарел.

Если я использую have_at_least ошибка связана с errors_on

Ответ №1:

Смотрите этот запрос на извлечение. have(n) был извлечен драгоценный камень rspec-collection_matchers

Вы можете включить его или просто использовать одно из следующих:

 expect(section.error_on(:name)size).to eq(1)
expect(section.error_on(:name)).to be_present
expect(section).to have_validation_error("your error message").on(:name)
  

Комментарии:

1. Те же ошибки. неопределенный метод ‘error_on’ для и неопределенный метод ‘on’ для

2. Я добавил драгоценный камень «rspec-collection_matchers» , поэтому он работает так, как я привык, спасибо!