MSTest V2 集合断言忽略大小写
MSTest V2 Collection assert with ignore case
有没有什么方法可以使用带忽略大小写比较的 MSTestV2 对集合进行断言?
例如,对于 NUnit 3 断言,我可以这样做:
Assert.That(subset, Is.SubsetOf(superset).IgnoreCase, missingColumnsMessage);
好的,这是一个可能的解决方案:
public static void IsSubset(this CollectionAssert assert,
ICollection<string> subset, ICollection<string> superset,
string message = null, IEqualityComparer<string> comparer = null)
{
var diff = subset.Except(superset, comparer ?? StringComparer.CurrentCulture).ToList();
if (diff.Any())
{
var msg = message
?? $"These values are missing in the superset: {string.Join(", ", diff)}";
throw new AssertFailedException(msg);
}
}
用法:
CollectionAssert.That.IsSubset(subset, superset, "Failed!",
StringComparer.InvariantCultureIgnoreCase);
有没有什么方法可以使用带忽略大小写比较的 MSTestV2 对集合进行断言?
例如,对于 NUnit 3 断言,我可以这样做:
Assert.That(subset, Is.SubsetOf(superset).IgnoreCase, missingColumnsMessage);
好的,这是一个可能的解决方案:
public static void IsSubset(this CollectionAssert assert,
ICollection<string> subset, ICollection<string> superset,
string message = null, IEqualityComparer<string> comparer = null)
{
var diff = subset.Except(superset, comparer ?? StringComparer.CurrentCulture).ToList();
if (diff.Any())
{
var msg = message
?? $"These values are missing in the superset: {string.Join(", ", diff)}";
throw new AssertFailedException(msg);
}
}
用法:
CollectionAssert.That.IsSubset(subset, superset, "Failed!",
StringComparer.InvariantCultureIgnoreCase);