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%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.
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% 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%Tags und Links c# unit-testing fluent-assertions