在此测试中,所需的断言是,如果获取的字符串数组的成员具有与某事物类似的值。
例如: 假设获得的字符串数组是
string[] obtainedArr = new string("c:\programfiles", "d:\morefiles", "e:\some");
我们是否有以下内容:
Assert.That(obtainedArr, Has.Member.Which.Is.String.Containing("d:"), "D: location not obtained");
或者我们有更好的方法来实现这个目标吗?
答案 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));
当然,这段代码不是很易读,所以我会创建(扩展)方法来检查给定路径是否是其他路径的子路径。