fließend Behauptungen benutzen, würde ich behaupten möchte, dass eine gegebene Zeichenfolge enthält entweder eine von zwei Strings:Fluent Behauptungen: Nimmt einen oder anderen Wert
actual.Should().Contain("oneWay").Or().Should().Contain("anotherWay");
// eiter value should pass the assertion.
// for example: "you may do it oneWay." should pass, but
// "you may do it thisWay." should not pass
Nur wenn keiner der Werte enthalten ist, die Behauptung, sollte fehlschlagen. Dies funktioniert NICHT (nicht einmal kompilieren), da es keinen Operator Or()
gibt. Diese
ist, wie ich es jetzt tun:
bool isVariant1 = actual.Contains(@"oneWay");
bool isVariant2 = actual.Contains(@"anotherWay");
bool anyVariant = (isVariant1 || isVariant2);
anyVariant.Should().BeTrue("because blahblah. Actual content was: " + actual);
Das ausführliche ist, und das „weil“ Argument muss manuell eine sinnvolle Ausgabe haben, erstellt bekommen.
Gibt es eine Möglichkeit, dies lesbarer zu machen? Eine Lösung soll auch auf andere fließend Behauptung Arten, wie Be()
, HaveCount()
usw. anwenden ...
ich FluentAssertions bin mit Version 2.2.0.0 auf .NET 3.5, wenn es ankommt.
Eigentlich, wenn dies fehlschlägt, haben Sie keine Ahnung, was los ist. –