当前位置:  开发笔记 > 编程语言 > 正文

断言IEnumerables

如何解决《断言IEnumerables》经验,为你挑选了3个好方法。

由于我们公司没有使用单元测试,我正在教自己对我自己的代码进行单元测试.我正在使用标准的.net测试框架进行一些非常基本的单元测试.

我的方法返回a IEnumerable,我想测试它的输出.所以我创建了一个IEnumerable期望测试它.我以为我记得那里有Assert.ArePartsEqual类似的东西,但我似乎无法找到它.

简而言之,我如何测试两个是否IEnumerable包含相同的字符串?



1> Davy Landman..:

我不知道您指的是哪个"标准.net测试框架",但如果是Visual Studio Team System Unit测试的东西,您可以使用CollectionAssert.

你的测试将是这样的:

CollectionAssert.AreEqual(ExpectedList, ActualList, "...");

更新:我忘了CollectionAssert需要一个ICollection接口,所以你必须调用ActualList.ToList()来让它编译.返回IEnumerable是一件好事,所以不要只为测试改变它.



2> Marc Gravell..:

你想要SequenceEqual()扩展方法(LINQ):

    string[] x = { "abc", "def", "ghi" };
    List y = new List() { "abc", "def", "ghi" };

    bool isTrue = x.SequenceEqual(y);

要不就:

   bool isTrue = x.SequenceEqual(new[] {"abc","def","ghi"});

(如果它们的长度不同,或者任何项目不同,它将返回false)



3> Jon Skeet..:

我有一个例子,我用于"在60分钟内实现LINQ to Objects"谈话.

它也在我的MoreLinq项目中.在这里尝试过它,它包裹得非常糟糕.刚刚从GitHub抢 ...

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有