2009-10-30 15 views
17

Desidero un un supporto, in NUnit, che asserisce se due dizionari sono uguali. vale a dire, voglio una versione sintetica del codice qui sotto:NUnit: Dizionario Assert

public static void DictionaryAssert<T, U>(Dictionary<T, U> dictionaryResult, Dictionary<T, U> expectedResult) 
{ 
    Assert.AreEqual(dictionaryResult.Count, expectedResult.Count); 
    foreach (var aKey in expectedResult.Keys) 
    { 
     Assert.AreEqual(expectedResult[aKey], dictionaryResult[aKey]); 
    } 
} 

Sicuramente non è così difficile, ma non riesco a trovare il riferimento, qualche idea?

risposta

25

Dai un'occhiata a CollectionAssert.AreEquivalent. Ciò asserirà che i due dizionari hanno gli stessi contenuti, ma non sono necessariamente la stessa istanza.

+2

Ho pensato che sono solo per IEnumerable? Il dizionario non sembra funzionare, secondo i miei test. – Graviton

+0

Dizionario implementa IEnumerable. Che versione stai usando? Funziona per me su NUnit v2.4. – adrianbanks

+0

Penso di essere d'accordo con te; tuttavia l'ultima volta che uso CollectionAssert.AreEquivalent il mio confronto con il ditt non riesce in qualche modo. nvm, vorrei solo accettare la tua risposta prima. – Graviton