Rspec-core: Несколько типов спецификаций в метаданных

Созданный на 24 окт. 2016  ·  3Комментарии  ·  Источник: rspec/rspec-core

Я хотел бы определить несколько типов спецификаций для метаданных, но в настоящее время это невозможно.

Я хотел бы определить такие вещи, как:

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)

Самый полезный комментарий

Я не думаю, что приведенное выше решение улучшает читаемость и в spec/rails_helper . Для этих случаев было бы здорово использовать однострочное решение. Не думаю, что я один оценил бы то, что я предложил.

Все 3 Комментарий

Ты можешь это сделать:

%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 . Для этих случаев было бы здорово использовать однострочное решение. Не думаю, что я один оценил бы то, что я предложил.

Учитывая, что в настоящее время мы рассматриваем значения метаданных как простые значения, было бы действительно сложно начать придавать им особое значение, не говоря уже о двусмысленности!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги