Ich kann nicht scheinen Specs2 benutzerdefinierte Nachrichten zu drucken.Wie kann ich benutzerdefinierte Nachrichten mit veränderbaren Specs2-Spezifikationen verwenden?
import org.junit.runner.RunWith
import org.specs2.mutable.Specification
import org.specs2.runner.JUnitRunner
@RunWith(classOf[JUnitRunner])
class MessageSpecs extends Specification {
"This" should {
"fail" in {
true.must(beFalse).setMessage("this should PRINT")
//true.must(beFalse.setMessage("this should PRINT")) // or maybe this? no.
//true.must(beFalse).updateMessage(_ => "this should PRINT") // not this either
}
}
}
Ich bekomme einfach die Standard Fehlermeldung "der Wert ist wahr". Dies ist auf specs2 3.8.5 mit dem JUnitRunner über Maven. Ich habe das bei einem sbt-Projekt noch nicht ausprobiert. Die Dokumentation, die ich finden kann, deutet darauf hin, dass dies funktionieren sollte.
--- --- Bearbeiten
Art-of Work-around: true.aka("this should PRINT").must(beFalse) // works
, die ein bisschen hässlich druckt, wenn in der Praxis verwendet, um einen komplizierten Ausfall zu beschreiben, aber zumindest druckt es, so Ich kann den zusätzlichen Kontext hinzufügen, der notwendig ist, um den Fehler leichter zu verstehen.
Dank @Eric. Ich bin mir ziemlich sicher, dass ich dies mit einigen komplizierteren Matches als BeFalse gesehen habe, was mich dazu gebracht hat, es auf das oben genannte zu reduzieren. Wenn ich sie wieder sehe, werde ich hier eine Notiz schreiben. Seitdem habe ich die Spezifikation jedoch neu organisiert und verwende 'aka', da es zuverlässiger erscheint. –
Scott, ich habe die Antwort aktualisiert. – Eric