Esiste un modo semplice per verificare in un test di unità che due array siano uguali (ovvero abbiano lo stesso numero di elementi e ogni elemento sia lo stesso?).Asserire che gli array sono uguali nel framework di test di Visual Studio 2008
In Java, vorrei usare assertArrayEquals (foo, bar);
, ma non sembra esserci un equivalente per C#. Ho provato Assert.AreEqual(new string[]{"a", "b"}, MyFunc("ab"));
, ma anche se la funzione restituisce un array con "a", "b" il controllo non riesce ancora
Si sta utilizzando Visual Studio 2008 Team Suite, con il framework di test dell'unità integrato.
Basta tenere a mente quanto segue, http://stackoverflow.com/questions/5194966/mstest-collectionassert-areequivalent-failed-the-expected-collection-contains gli oggetti possono essere confrontati esplicitamente con 'object.Equals' e il 'IEqualityComparer' potrebbe dover essere definito al fine di superare un'affermazione fallita. –
atconway
Mi piacerebbe che questo fornisse messaggi più dettagliati quando non funzionava. "Diverso numero di elementi" e "Elemento nell'indice 0 non corrispondono" sono leggermente inutili. * Cosa sono allora?! * –
'CollectionAssert.AreEquivalent' (disponibile da Visual Studio 2010) offre risultati più informativi. Ad esempio, quando il numero di elementi è diverso, il messaggio indica il numero atteso e il numero effettivo di elementi – Dennie