Gibt es eine gute Möglichkeit zu überprüfen, ob eine Musterübereinstimmung in ScalaTest erfolgreich ist? Eine Option wird in scalatest-users Mailing-Liste gegeben:Kurzer Weg, um einen Wert zu bestätigen, stimmt mit einem gegebenen Muster in ScalaTest überein.
<value> match {
case <pattern> =>
case obj => fail("Did not match: " + obj)
}
Es ist jedoch nicht komponiert nicht (zum Beispiel, wenn ich, dass genau zwei Elemente einer Liste entsprechen das Muster unter Verwendung von Inspektoren API behaupten will). Ich könnte einen Matcher schreiben, der ein Teilfunktionsliteral nimmt und Erfolg hat, wenn es definiert ist (es müsste ein Makro sein, wenn ich auch das Muster in der Nachricht bekommen möchte). Gibt es eine bessere Alternative?
Ich denke eigentlich, es ist schlimmer als die Lösung in der Frage: Fehler gibt eine weniger nützliche Nachricht. –
Das ist ein guter Punkt. Ich habe meine Antwort verbessert, um dieses Problem anzugehen, aber diese Lösung entspricht möglicherweise nicht Ihrem Ziel, "prägnant" zu sein. –