2009-03-19 24 views
12

El marco MSTest tiene un CollectionAssert que acepta ICollections. Mi método devuelve un IList. Aparentemente una lista no es una colección.Prueba de unidad IList con CollectionAssert

¿Hay formas de hacer que mi IList sea una colección?

+2

El problema de conexión para esto. Respuesta habitual de Microsoft, tsss. https://connect.microsoft.com/VisualStudio/feedback/details/477870/collectionassert-cannot-be-used-with-hashset-t-andpossible-other-collections# – Rudi

Respuesta

9

Se podría llamar la ToArray método de extensión() sobre ella - arsenal implementa ICollection

Editar: También, mientras List<T> implementa ICollection, IList<T> sólo se implementa ICollection<T>, que no implementa ICollection, por lo que si se conoce el elemento de la prueba es una List<T>, usted debe ser capaz de echarlo ...

+0

Creo que IEnumerable para los parámetros habría sido una mejor elección NUnit tiene esta correcta. – Gishu

1

puede enviar una lista

List<string> actual = new List<string>(){"1","2","3"}; 
    List<string> expected = new List<string>(){"1","2","**EditCaseFalse**"}; 
    CollectionAssert.AreEqual(actual,expected) 

que vuelva Error (tercer elemento no lo hace partido.)

+3

y cómo exactamente esto está relacionado con la pregunta? –

+0

Envío en dos listas (IList) que se comparan en CollectionAssert es que su problema ... – salgo60

+0

Lo siento, no leí lo suficiente sobre su respuesta. Consulte la respuesta de @ Lee sobre por qué esto funciona pero no es una solución a mi problema. –