私は、API呼び出しからのHTTPヘッダーがすべて受け入れ可能なヘッダーのリスト(受け入れ可能な値も含む)に含まれていることを主張する仕様を書こうとしています。RSpecでは、ヘッダが許容可能な値のリストに含まれることを期待するには?
私はこのような何か書いてしまった:
RSpec::Matchers.define :be_included_in do |enumerable|
match do |element|
enumerable.include?(element)
end
end
これはヘッダが含まれるすべての範囲内にあることを主張するためにうまく機能しませんが:be_included_in
は、カスタム照合で
expect(response.headers).to all(be_included_in(acceptable_headers))
を受諾のためにその値をテストするという要件を満たしている。
どのようにこれをエレガントに行うためのアイデアですか?
がそれぞれ許容ヘッダが許容値の既知のセットを持っていないか、許容値は、各許容ヘッダーの正規表現のような単純なもので識別することができ、あるいはより複雑な何かが必要とされるであろう。この正規表現はそれを処理します?また、あなたのマッチャーの '!'はタイプミスですか? –
受け入れられた値は、RSpecマッチャーで表現するのに十分シンプルです(ただし、複雑な条件にもrspecマッチャーがあります)。私は実際にフィードバックを受け取る答えとして投稿するソリューションを考え出しました。あなたが正しいです、マッチャーの '!'はタイプミスです! –
受け入れ可能なヘッダーのリスト内のヘッダーが存在しない場合(誤った値を持つのとは対照的に)、テストは合格しますか? –