Rspec-core: Vários tipos de especificações nos metadados

Criado em 24 out. 2016  ·  3Comentários  ·  Fonte: rspec/rspec-core

Eu gostaria de definir vários tipos de especificações para metadados, mas atualmente não é possível.

Eu gostaria de definir coisas como:

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))

Atualmente eu tenho que duplicar as definições.

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)

Comentários muito úteis

Eu não acho que a solução acima melhora a legibilidade e em spec/rails_helper . Alguma solução de uma linha seria ótima para esses casos. Acho que não, sou o único que apreciaria algo que propus.

Todos 3 comentários

Você consegue fazer isso:

%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

Dado o quão fácil é fazer com um loop simples, não vejo uma razão para adicionarmos suporte para o que você está pedindo - principalmente porque seria uma maneira muito implícita e confusa para os metadados corresponderem, IMO .

Eu não acho que a solução acima melhora a legibilidade e em spec/rails_helper . Alguma solução de uma linha seria ótima para esses casos. Acho que não, sou o único que apreciaria algo que propus.

Dado que atualmente tratamos os valores de metadados como valores simples, seria realmente confuso começar a dar-lhes um significado especial, para não dizer ambíguo!

Esta página foi útil?
0 / 5 - 0 avaliações