Я хотел бы определить несколько типов спецификаций для метаданных, но в настоящее время это невозможно.
Я хотел бы определить такие вещи, как:
config.when_first_matching_example_defined(types: %i(feature request)) do
# enable db support only for feature or request specs
require 'support/db'
end
# include these Helpers only into feature or request specs
config.include(Helpers, types: %i(feature request))
В настоящее время я должен дублировать определения.
config.when_first_matching_example_defined(types: :feature) do
require 'support/db'
end
config.when_first_matching_example_defined(types: :request) do
require 'support/db'
end
config.include(Helpers, type: :feature)
config.include(Helpers, type: :request)
Ты можешь это сделать:
%i(feature request).each do |type|
config.when_first_matching_example_defined(type: type) do
# enable db support only for feature or request specs
require 'support/db'
end
# include these Helpers only into feature or request specs
config.include(Helpers, type: type)
end
Учитывая, как легко это сделать с помощью простого цикла, я не вижу причин для нас добавлять поддержку того, о чем вы просите, особенно потому, что это был бы очень неявный, запутанный способ сопоставления метаданных, ИМО .
Я не думаю, что приведенное выше решение улучшает читаемость и в spec/rails_helper
. Для этих случаев было бы здорово использовать однострочное решение. Не думаю, что я один оценил бы то, что я предложил.
Учитывая, что в настоящее время мы рассматриваем значения метаданных как простые значения, было бы действительно сложно начать придавать им особое значение, не говоря уже о двусмысленности!
Самый полезный комментарий
Я не думаю, что приведенное выше решение улучшает читаемость и в
spec/rails_helper
. Для этих случаев было бы здорово использовать однострочное решение. Не думаю, что я один оценил бы то, что я предложил.