2010-12-10 10 views
0

ich einen Unit-Test-Methode haben:Implizit typisierte Array von Tripletts

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

Da es „weiß“, welche Arten sind (entworfen) kompatibel, es einen Aufruf an die Einheit macht, die getestet wird, und sucht nach Fehlern . Fehler sollten nur für inkompatible Typen angezeigt werden, so dass die Methode Tests durchführt, ist der Typ der Einheit, die den Code prüft, implementiert oder nicht.

Die Frage: Wie schreibe ich die Drillinge-Sammlung?

Ich mag so etwas wie:

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

mit impliziter Typisierung.

P.S. Ich weiß, dass ich Attribute zusammen mit NUnit verwenden kann. Trotzdem möchte ich sehen, wie es ohne Bibliotheken geschrieben werden kann.

Grüße,

Antwort

3

Ich weiß nicht, ob dies ist, was Sie suchen, aber man konnte Verwendung von anonymen Typen machen:

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 Vermutlich werden die Eigenschaften genannt werden würde 'new { Type1 = "Num", Type2 = "Num", ShouldBeCompatible = true} ' –

+0

Danke, Fredrik! Forgotten the damn new's :) – noober

+0

@Tim: Ich erkannte, dass (obwohl ich die 'bool' nur' Compatible' genannt habe) –