2009-06-23 4 views
0

Ich schreibe gerade Komponententests für eine Anwendung kurz vor dem Abschluss (bevor das Management es ansieht und es umdreht). Ich teste die Business-Schicht und eine Methode ist so eingestellt, dass sie eine Datentabelle von allen "GroupID" s zurückgibt, die einfach eine Ganzzahl sind, um die Gruppe darzustellen, zu der ein Benutzer gehört.Konvertieren der Zeilen eines zurückgegebenen DataTable-Objekts in eine nützliche Liste?

Ich gehe davon aus, dass der beste Weg zur Geltendmachung bei diesem Komponententest darin besteht, zu bestätigen, dass die korrekten Gruppen-IDs aus einer kontrollierten Testdatenbank zurückgegeben werden. Ich bin mir jedoch nicht sicher, wie ich auf einer Datentabelle behaupten soll. Ist die einzige (und beste) Möglichkeit, dies zu erreichen, einfach die Datentabelle zu durchlaufen, bis sie leer ist, und jeden Wert zu einem Array von ganzen Zahlen hinzuzufügen? Wie würde man bei diesem Test vorgehen?

+0

Plz überprüfen meine Antwort ...... –

Antwort

0

beste Weg, mit Sammlung zu erreichen ...

List<string> items = new List<string>(dtbl.Rows.Count); 

    for (int RowCount = 0; RowCount < dtbl.Rows.Count; RowCount++) 
    { 
     items.Add(dtbl.Rows[RowCount]["ID"].ToString()); 
    } 

    items.ToArray(); 
0

Es hängt davon ab, wie die Methode in der Business-Schicht ihre Daten erhält. Wenn es direkt von der Datenbank kommt, dann haben Sie nicht viel Auswahl, als eine Testdatenbank zu verwenden. Dies ist jedoch nicht im Sinne von Unit Tests.

Im Idealfall würde die Business-Layer-Methode Daten von einem Datenprovider erhalten, die Sie zur Laufzeit mit etwas wie IoC (z. B. Castle Windsor) oder einem spöttischen Framework wie Rhino Mocks austauschen können.

In beiden Fällen müssen Sie im Wesentlichen einen Test einrichten und die Rückgabewerte von Methoden mit erwarteten Werten vergleichen. Ob Sie eine Datenbank oder ein Mock-Objekt verwenden, wirkt sich nicht auf diesen Ansatz aus. Daher ist es durchaus akzeptabel, den Inhalt und die Reihenfolge eines Arrays anhand eines fest codierten bekannten Werts zu überprüfen.

+0

Es recieves die Daten aus einem Datalayer, die in den meisten Fällen zusammen, die Daten nur weiterleitet. – Chris

Verwandte Themen