シーケンスを指定すると、シーケンス内のすべてのマッチャーが成功したときに成功するSeq[Matcher[A]]
シングルを取得したいと考えています。Matcher[A]
編集
私自身が提供した答えは少し不器用に思えます。さらに、シーケンスのすべての失敗したマッチャーが結果を生成した場合はいいでしょう
マッチャー シーケンスから新しいマッチャーを作成する際の問題は、失敗したマッチャーを見つけるのが難しくなることです。
私の意見では、より良いオプションは、次のように各マッチャーに対して個別にマッチングすることです。
val matchers: Seq[Matcher[Boolean]] = Seq(
((_: Boolean).equals(false), "was true 1"),
((_: Boolean).equals(true), "was false 2"),
((_: Boolean).equals(true), "was false 3")
)
"work with matcher sequence" in {
matchers.foreach(beMatching => false must beMatching)
}
出力から、マッチャーが個別に呼び出され、最初の失敗によってテストが失敗し、そのマッチャーのメッセージが表示されることがわかります。
ケースによっては、マッチャーごとに期待値を生成する方が良い場合もあります。そのため、最初の失敗だけでなく、それらすべてを実行して適切な概要を表示します。私はそこまで行っていません(まだ)。
わかりました、私は方法を見つけました:
(matchers: Seq[Matcher[A]]).reduce(_ and _)
どういうわけか、書くなど、別の方法が必要だと思いました_.sequence
。