2009-03-19 2 views
12

MSTest 프레임 워크에는 ICollections를 허용하는 CollectionAssert가 있습니다. 내 메서드는 IList를 반환합니다. 분명히 목록은 컬렉션이 아닙니다.CollectionAssert를 사용하여 단위 테스트 IList

내 IList를 ICollection으로 만드는 방법이 있습니까?

+2

연결 문제. 일반적인 Microsoft 응답, tsss. https://connect.microsoft.com/VisualStudio/feedback/details/477870/collectionassert-cannot-be-used-with-hashset-t-and-possibly-other-collections# – Rudi

답변

9

당신은 그것에 ToArray() 확장 메서드를 호출 할 수 - 배열이

편집 ICollection에

구현합니다 또한, List<T>가 ICollection에 구현하면서, IList<T>는 당신이에서 항목을 알고, 그래서 만약은 ICollection를 구현하지 않는 ICollection<T>를 구현 테스트 ... 당신이 캐스팅 할 수 있어야하는 List<T>입니다

+0

매개 변수에 대한 IEnumerable은 더 나은 선택. NUnit이 권리가 있습니다. – Gishu

1

당신은 세 번째 요소하지 않습니다 (

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

내가 다시 실패 얻을 목록에 보낼 수 있습니다 일치).

+3

과 정확히 어떻게 관련이 있습니까? –

+0

나는 CollectionAssert에서 비교되는 두 개의 목록 (IList)을 보냈습니다 ... – salgo60

+0

죄송합니다. 답변을 충분히 읽지 못했습니다. 왜 이것이 작동하지만 내 문제에 대한 해결책이 아닌지에 대한 @ Lee의 대답을 참조하십시오. –