#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» , поэтому он работает так, как я привык, спасибо!