由于我们公司没有使用单元测试,我正在教自己对我自己的代码进行单元测试.我正在使用标准的.net测试框架进行一些非常基本的单元测试.
我的方法返回a IEnumerable<string>,我想测试它的输出.所以我创建了一个IEnumerable<string>期望测试它.我以为我记得那里有Assert.ArePartsEqual类似的东西,但我似乎无法找到它.
简而言之,我如何测试两个是否IEnumerable<string>包含相同的字符串?
Dav*_*man 27
我不知道您指的是哪个"标准.net测试框架",但如果是Visual Studio Team System Unit测试的东西,您可以使用CollectionAssert.
你的测试将是这样的:
CollectionAssert.AreEqual(ExpectedList, ActualList, "...");
Run Code Online (Sandbox Code Playgroud)
更新:我忘了CollectionAssert需要一个ICollection接口,所以你必须调用ActualList.ToList()来让它编译.返回IEnumerable是一件好事,所以不要只为测试改变它.
Mar*_*ell 13
你想要SequenceEqual()扩展方法(LINQ):
string[] x = { "abc", "def", "ghi" };
List<string> y = new List<string>() { "abc", "def", "ghi" };
bool isTrue = x.SequenceEqual(y);
Run Code Online (Sandbox Code Playgroud)
要不就:
bool isTrue = x.SequenceEqual(new[] {"abc","def","ghi"});
Run Code Online (Sandbox Code Playgroud)
(如果它们的长度不同,或者任何项目不同,它将返回false)
| 归档时间: |
|
| 查看次数: |
8267 次 |
| 最近记录: |