#ruby #rspec #rspec-rails
Вопрос:
Я использую сопоставитель совпадений RSpec, чтобы проверить, содержит ли хэш ожидаемые значения. Когда ключ хэша не совпадает, все динамические ( a_string_starting_with
и т.д.) значения отображаются как не совпадающие. Это особенно отвлекает, когда вы пытаетесь сопоставить больший хэш. Мне интересно, есть ли другой способ проверить хэш, чтобы в разнице отображались только те значения, которые действительно не совпадают.
Вот пример, где a
отмечен красным, хотя значение правильное.
it 'matches' do
actual = {
a: 'test test',
b: 1,
c: 2,
}
expect(actual).to match(
a: a_string_starting_with('test'),
b: 0,
c: 2,
)
end
Мне интересно, есть ли еще один сопоставитель, который я должен использовать. Или есть ли для этого какие-либо специальные сопоставители или драгоценные камни?
Комментарии:
1. Не могли бы вы попробовать это :
expect(actual).to include(a: match(/^test/), b: 1, c: 2)
2. Результаты те же,
a
отображается красным цветом, когдаb
значение неверно.
Ответ №1:
Проблема с этим заключается в текущем отличии, используемом RSpec, и они уже знают об этой проблеме, хотя в настоящее время исправления не существует, как видно из этих билетов:
- https://github.com/rspec/rspec-support/issues/365
- https://github.com/rspec/rspec-expectations/issues/1120
Одно из решений, предложенных на данный момент в билете, похоже на то, что предлагает Мозаалеб.
Комментарии:
1. Спасибо за ссылки на проблемы!