2009-06-23 6 views
0

J'écris actuellement des tests unitaires pour une application presque terminée (avant que la direction ne la regarde et la retourne). Je suis en train de tester la couche de gestion et une méthode est définie pour retourner une datable de tous les "GroupID", qui sont simplement un entier représentant le groupe auquel appartient un utilisateur.Convertir les lignes d'un objet DataTable retourné en une liste utile?

Je suppose que le meilleur moyen d'affirmer sur ce test unitaire serait d'affirmer que les ID de groupe corrects sont renvoyés à partir d'une base de données de test contrôlée. Cependant, je ne suis pas sûr de savoir comment affirmer sur un datatable. Est le seul (et le meilleur) moyen possible d'accomplir ceci pour simplement boucler à travers la datatable jusqu'à ce qu'il soit vide et ajouter chaque valeur à un tableau d'entiers? Comment irait-on affirmer sur ce test?

+0

Plz vérifier ma réponse ...... –

Répondre

0

meilleure façon d'accomplir en utilisant la collection ...

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

Cela dépend de la façon dont la méthode dans la couche de gestion obtient ses données. Si c'est directement à partir de la base de données, vous n'avez pas vraiment le choix d'utiliser une base de données de test. Cependant, ce n'est pas dans l'esprit des tests unitaires, vraiment.

Idéalement, la méthode de la couche d'affaires serait d'obtenir des données de partir d'un fournisseur de données que vous pouvez permuter à l'exécution en utilisant quelque chose comme IoC (par exemple le château de Windsor) ou un cadre moqueur comme Rhino Mocks. Dans les deux cas, vous devez essentiellement configurer un test et comparer les valeurs de retour des méthodes aux valeurs attendues. Que vous utilisiez une base de données ou un objet fictif n'affecte pas cette approche, la vérification du contenu et de l'ordre d'un tableau par rapport à une valeur connue codée en dur est parfaitement acceptable.

+0

Il reçoit les données d'une couche de données, qui, dans la plupart des cas transmet uniquement les données le long. – Chris

Questions connexes