Kann Fluent Assertions einen String-insensitiven Vergleich für IEnumerableString verwenden?

8

Ich habe ein paar Listen, die ich mit Fluent Assertions vergleichen möchte. Ich kann leicht einen Vergleich schreiben, aber ich möchte Fluent Assertions verwenden, damit ich den Grund habe, in der Test fehlgeschlagenen Nachricht zu erscheinen.

Alles, was ich bisher gesehen habe, scheint den standardmäßigen Object.Equals-Vergleich zu verwenden, bei dem die Groß- / Kleinschreibung beachtet wird. Ich kann nicht scheinen, einen IComparer an die Equal oder Contains Methoden zu übergeben, gibt es einen anderen Weg?

%Vor%     
Zugbo 26.03.2012, 18:29
quelle

4 Antworten

1

Wir könnten der Equal () -Methode einen optionalen Lambda-Ausdruck hinzufügen. Dann könnten Sie etwas wie

tun %Vor%

Ein IComparer wäre auch möglich, aber ich denke, dass die gelegentliche Ausnahme des Standardverhaltens von Equal () keine zusätzliche benutzerdefinierte Klasse rechtfertigen würde. Tatsächlich könnte ein separater IComparer die Absicht des Tests jemals verdecken. Lassen Sie mich wissen, was Sie denken, ist die beste Lösung, also kann ich es als ein Problem auf Codeplex für Release 1.8.0 hinzufügen.

    
Dennis Doomen 27.03.2012, 06:15
quelle
16

In späteren Versionen von FluentAssetrions kann man folgendes verwenden:

%Vor%

Zusammenfassung von [Metadaten]:

%Vor%

Funktioniert in der Version, die ich verwende (FluentAssertions.2.2.0.0).

    
TarasB 07.04.2014 08:58
quelle
1

Wie wäre es, eine neue Fluent-Assertion über eine (oder zwei) Verlängerungsmethode hinzuzufügen? Ich habe Code geschrieben, um ein .EqualInsensitively(...) zu den verfügbaren fließenden Assertions für eine Sammlung von Strings hinzuzufügen.

Ich habe den Code implementiert, um dies auf einem externen Pastebin zu implementieren, weil es ein wenig lang ist und das MS -PL ist möglicherweise nicht mit CC-Wiki kompatibel.

Verwenden Sie etwas wie folgt:

%Vor%     
Kevin Cathcart 26.03.2012 20:12
quelle
0

Du könntest eine Erweiterungsmethode für IEnumerable<string> selbst erstellen (so mache ich das Zeug) und ich denke, einige Unit-Testframeworks machen das schon (FSUnit AFAIK)

Hier ist ein einfaches Beispiel (Sie könnten viel verbessern - aber es sollte tun)

%Vor%

benutze einfach wie

%Vor%     
Carsten 26.03.2012 18:42
quelle