2010-12-10 4 views
0

J'ai une méthode de test unitaire:tableau Implicitement typé de triplés

private bool TestCompatibility(string type1, string type2, bool shouldBeCompatible) 
{ 
} 

Comme il « sait » quels types sont (conçus) compatibles, il fait un appel à l'unité qui est en cours de test et recherche des erreurs . Les erreurs ne devraient apparaître que pour les types incompatibles, de sorte que les tests de la méthode, c'est le code de vérification de type des unités implémenté à droite ou non.

La question: comment écrire la collection des triplés?

Je veux quelque chose comme:

var ar = { { "Num", "Num", true }, { "Num", "Datetime", false } }; 
foreach (var triplet in ar) 
{ 
    // ??? 
} 

avec frappe implicite.

P.S. Je sais que je peux utiliser des attributs avec NUnit. Néanmoins, je veux voir, comment il peut être écrit sans bibliothèques.

Cordialement,

Répondre

3

Je ne sais pas si c'est ce que vous cherchez, mais vous pouvez utiliser des types anonymes:

var ar = new[] { 
    new { Type1 = "Num", Type2 = "Num", Compatible = true }, 
    new { Type1 = "Num", Type2 = "Datetime", Compatible = false } 
}; 
foreach (var triplet in ar) 
{ 
    TestCompatibility(triplet.Type1, triplet.Type2, triplet.Compatible); 
} 
+1

+1 On peut supposer que les propriétés seraient appelées 'nouveau { Type1 = "Num", Type2 = "Num", ShouldBeCompatible = true} ' –

+0

Merci, Fredrik! Oublié le foutu nouveau :) – noober

+0

@Tim: Je me suis rendu compte que (même si j'ai appelé le 'bool' seulement' Compatible') –

Questions connexes