Me gustaría definir varios tipos de especificaciones para los metadatos, pero actualmente no es posible.
Me gustaría definir cosas 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))
Actualmente tengo que duplicar las definiciones.
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)
Puedes hacerlo:
%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 lo fácil que es hacerlo con un ciclo simple, no veo una razón para que agreguemos soporte para lo que está solicitando, particularmente porque sería una forma muy implícita y confusa de que los metadatos coincidan, en mi opinión. .
No creo que la solución anterior mejore la legibilidad y en spec/rails_helper
. Alguna solución de una sola línea sería genial para estos casos. No creo, soy el único que apreciaría algo lo que propuse.
Dado que actualmente tratamos los valores de los metadatos como valores simples, sería realmente confuso comenzar a darles un significado especial, ¡sin mencionar que son ambiguos!
Comentario más útil
No creo que la solución anterior mejore la legibilidad y en
spec/rails_helper
. Alguna solución de una sola línea sería genial para estos casos. No creo, soy el único que apreciaría algo lo que propuse.