Rspec-core: メタデータの複数のタイプの仕様

作成日 2016年10月24日  ·  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

単純なループで行うのがいかに簡単かを考えると、あなたが求めているもののサポートを追加する理由はわかりません。特に、メタデータが一致するための非常に暗黙的で紛らわしい方法であるため、IMO 。

上記の解決策が読みやすさを改善し、 spec/rails_helperになるとは思いません。 これらの場合には、いくつかのワンライナーソリューションが最適です。 私は、私が提案したものに感謝するのは私だけだとは思いません。

現在、メタデータ値を単純な値として扱っていることを考えると、あいまいなことは言うまでもなく、それらに特別な意味を与え始めるのは本当に混乱します。

このページは役に立ちましたか?
0 / 5 - 0 評価