4 Stimmen

Wie werden Sie eine Funktion testen, die den Datentyp Hash-Tabelle enthält?

Mein Projekt generiert einige Werte (gleiche Partitionierungsmethode) für jeden Datentyp, indem es die Mindest- und Höchstwerte ermittelt. Ich generiere diese Werte für Funktionstests und übergebe diese Werte an nunit partner, max und min gelten für int, float, double usw. Diese Werte sind Testdaten.

Zunächst habe ich sie für grundlegende Datentypen wie int, float, double, string usw. erstellt.

Jetzt muss ich Datentypen wie DataSet, HashTable und andere Collections unterstützen.

public DataSet MySampleMethod(int param1, string param2, Hashtable ht)

Zum Testen dieser Funktion kann ich Werte für int und string übergeben, aber wie werde ich Testdaten für ht oder wie werden Testdaten für eine Hashtabelle erzeugt?

2voto

Jonathan Parker Punkte 6551

Sie müssen die Hash-Tabellen-Implementierung aus dem Code abstrahieren, damit sie bei Unit-Tests als Mocking, Injection oder Stubbed verwendet werden kann.

Erstellen Sie einfach eine Schnittstelle namens IHashTable und erstellen Sie dann Ihre konkrete Implementierung, indem Sie die Schnittstelle implementieren. Dann machen Sie alle Ihre Klassen, die HashTables verwenden, jetzt IHashTable verwenden. Fügen Sie dann einen Parameter zu ihren Konstruktoren hinzu, der eine IHashTable akzeptiert.

Wenn Sie dann Unit-Tests durchführen, fügen Sie einen Mock oder Stub der IHashTable-Schnittstelle ein.

Spott: http://en.wikipedia.org/wiki/Mock_object

0 Stimmen

Gibt es ein Open-Source-Tool zur Erstellung von Stubs

0 Stimmen

Können Sie einige Beispiele für die obige Antwort vorschlagen?

0 Stimmen

Und geben Sie ein Beispiel für die obige Antwort

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X