У меня есть следующие ожидания в полнометражной спецификации (довольно низкий уровень, но по-прежнему необходимо):Могу ли я использовать встроенный помощник RSpec в пользовательском совпадении?
expect(Addressable::URI.parse(current_url).query_values).to include(
'some => 'value',
'some_other' => String
)
Обратите внимание, что второе значение запроса является нечетким соответствием, потому что я просто хочу, чтобы убедиться, что там, но я могу» более конкретно об этом.
Я хотел бы извлечь это в пользовательский сокет. Я начал с:
RSpec::Matchers.define :have_query_params do |expected_params|
match do |url|
Addressable::URI.parse(url).query_values == expected_params
end
end
, но это означает, что я не могу пройти {'some_other' => String}
там. Чтобы использовать нечеткое совпадение, мне пришлось бы использовать совпадение include
в моем пользовательском совпадении.
Однако, все, что в RSpec::Matchers::BuiltIn
отмечен как частный API, и Include
конкретно является documented как:
# Provides the implementation for `include`.
# Not intended to be instantiated directly.
Итак, мой вопрос: использует встроенный в Искателя в пользовательской согласовани поддерживается в RSpec ? Как мне это сделать?
имеет смысл. Я попробую. – awendt
Во-первых, я столкнулся с проблемой, когда RSpec выводит из имени соединителя, что URL-адрес реализует 'has_query_params? ', Но это было только потому, что я забыл включить include. Спасибо за то, что я звонил мне, между тем у меня были проблемы с моим env. – awendt