Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unit-testing IList with CollectionAssert

The MSTest framework has a CollectionAssert that accepts ICollections. My method returns an IList. Apparently a list is not a collection..

Are there ways to make my IList an ICollection?

like image 514
Boris Callens Avatar asked Mar 19 '09 14:03

Boris Callens


2 Answers

You could call the ToArray() extension method on it - Array implements ICollection

Edit: Also, while List<T> implements ICollection, IList<T> only implements ICollection<T> which does not implement ICollection, so if you know the item in the test is a List<T>, you should be able to cast it...

like image 103
Lee Avatar answered Nov 17 '22 12:11

Lee


You can send in a List

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

I get back Failed (third element does not match.)

like image 1
salgo60 Avatar answered Nov 17 '22 13:11

salgo60