2016-06-07 17 views
0

Ich bin im Vergleich zur Zeit von SQL-Abfragen, die Tausende von Werten in einer Liste zurückkehren ..C# Assert Vergleicht man zwei Listen FluentAssertions xUnit

ich die ShouldBeEquivalentTo() in Fluent Assertion bin mit, aber es dauert ewig, was nicht akzeptabel ist . Kann jemand das schnell machen?

Mit X-Einheit habe ich Assert.Equal verwendet, aber es schlägt fehl, die Eigenschaften der Liste zu vergleichen, ich lese ich muss die Methode überschreiben, aber ich möchte keine Komplexität hinzufügen.

Die einzige Möglichkeit, die ich gefunden, dass schnell funktioniert, ist Actual.Equals(Expected);, aber dann ist das Problem, ich habe keinen Zugriff auf Methoden wie contains(); ohne irgendeine Art von Framework.

Was ist der beste Weg, Listeneigenschaften schnell zu vergleichen? Ich bin offen für andere Tools oder Frameworks für VisualStudio und C#.

Danke.

+0

Um zu verdeutlichen: Das Objekt hat Tausende von Eigenschaften? –

+0

Ja, es ist eine Liste mit Tausenden von Werten. – Elsid

Antwort

1

Was möchten Sie testen? Die Korrektheit der SQL-Abfragen? Der Code, der die Abfragen ausführt und zurückgibt? SQL Server? Warum müssen Sie Tausende von Ergebnissen testen? Es klingt für mich so, als ob Sie mit xunit eine Integration oder ein QA-ähnliches Testen von realen Daten durchführen. Dafür ist Unit-Testing nicht zuständig.

Das sagte, ich bin schuldig, ähnliche Dinge zu tun. Manchmal müssen Sie wirklich die Datenbank testen (die Abfragen, die ist). Wenn es sich um einen "Komponententest" der SQL-Abfragen oder des Integrationstests handelt, sollten Sie einen viel kleineren Datensatz verwenden.

Zum Vergleichen von Listen siehe https://stackoverflow.com/a/22173807.

Ich denke, die wirkliche Lösung ist es, die Menge der Daten, die Sie vergleichen, zu reduzieren und sicherzustellen, dass Sie testen, was Sie wirklich testen wollen.