2016-08-16 5 views
1

Ich habe gerade mein altes Projekt aktualisiert, um Version 4.13.0 zu verwenden, und es gab eine Vielzahl von Ausnahmeüberprüfungen mit ComparisonMode.Substring, aber ComparisonMode.Substring existiert nicht in der neuesten Version. Ich fand this, die erklärt, dass:FluentAssertions schlägt beim Vergleichen von Ausnahmebedingungsnachrichten fehl

Als Folge davon, habe ich beschlossen, dass ab Version 2.1, die ComparisonMode veraltet ist und alle Behauptungen gegen die Ausnahmemeldung wird als Groß- und Kleinschreibung Wildcard Spiel behandelt.

Aber jetzt bekomme ich eine Menge nichtbestandenen Tests mit:

Expected Ausnahmemeldung das Äquivalent entsprechen „Wert des Argument‚Stichtags‘muss größer sein als '01 .01.0001' “, aber "Wert des Arguments 'PeriodEnd' muss größer als '01 .01.0001 'sein. Wert ist '01 .01.0001'.

Parametername: PeriodEnd" nicht.

String behaupten ich mit

Wert des Arguments 'Stichtags' muss größer sein als '01 .01.0001'

Das man es

Wert von Argument erwartet 'PeriodEnd' muss größer als '01 .01.0001 'sein. Der Wert ist '01 .01.0001 '.

Parametername: Stichtags

Aber von dem „Patch-Notes“ aus, bevor es scheint, dass es ein Platzhalter sein sollte, und die Zeichenfolge ich behaupten ist ein Teil des einer ist es wirklich, also warum Scheitert es?

Antwort

2

Sie müssen dem Aufruf von WithMessage immer noch die Platzhalterzeichen hinzufügen, so wie Sie es taten, als ComparisonMode.Wildcard noch existierte. Die Begründung wird in this post erläutert:

Wenn Sie sicherstellen müssen, dass ein bestimmter Zeichenfolgenwert oder eine Ausnahmebedingungsnachricht der Erwartung entspricht, überprüfen Sie nie die genaue Nachricht. Verwenden Sie Platzhalter, um die spezifischen Teile zu überprüfen, die relevant sind, um zu überprüfen, ob das Verhalten den Erwartungen entspricht. Wenn Sie sich dazu entschließen, den betreffenden Text zu verfeinern, werden Sie vor unerwarteten fehlgeschlagenen Tests bewahren.

+0

Gibt es einen Ort mit Informationen über die verschiedenen Platzhalterzeichen? – Mech0z

+0

Siehe https://github.com/dennisdoomen/FluentAssertions/wiki#exceptions. Kurz gesagt, nur '?' Und '*' werden unterstützt. –

Verwandte Themen