断言字符串数组成员内容

时间:2014-03-05 09:16:54

标签: c# unit-testing nunit

在此测试中,所需的断言是,如果获取的字符串数组的成员具有与某事物类似的值。

例如: 假设获得的字符串数组是

string[] obtainedArr = new string("c:\programfiles", "d:\morefiles", "e:\some");

我们是否有以下内容:

Assert.That(obtainedArr, Has.Member.Which.Is.String.Containing("d:"), "D: location not obtained");

或者我们有更好的方法来实现这个目标吗?

1 个答案:

答案 0 :(得分:4)

Assert.True(obtainedArr.Any(s => s.Contains("d:")), "D: location not obtained");

注意:默认情况下,字符串比较区分大小写,因此搜索D:将导致样本输入失败。此外,如果您正在寻找子路径,那么StartsWith可能比Contains更适合检查

Assert.That(obtainedArr.Any(s => 
   s.StartsWith("d:", StringComparison.InvariantCultureIgnoreCase));

当然,这段代码不是很易读,所以我会创建(扩展)方法来检查给定路径是否是其他路径的子路径。