我试图断言列表包含特定字符串。由于我需要不区分大小写地评估条件,因此我使用了一个解决方法(沿着 this blog post 的东西)。
但是,我想知道为什么似乎没有办法让 Assert.Contains 方法执行不区分大小写的比较。或者有没有办法做到这一点? (当我用谷歌搜索时,我只在 nUnit 的官方页面上找到了 Assert.That 方法的约束。)
最佳答案
无法在 Assert.Contains
中指定 ignoreCase。我不知道这是被忽视还是有意为之。但是,您可以使用
StringAssert.AreEqualIgnoringCase(left, right);
在您的单元测试中实现相同的结果。
或者,如果您希望坚持使用 Assert.Foo()
“主题”,您可以这样做:
Assert.IsTrue(string.Equals(left, right, StringComparison.OrdinalIgnoreCase));
或者,因为 Contains
处理数组:
Assert.IsTrue(list.Any(element => element.ToUpper() == "VILTERSTEN"));
在左右字符串操作数上调用 ToUpper()
的位置,这有效地使比较也忽略了大小写。 OrdinalIgnoreCase
是为了确保文化的某些极端情况(阅读:土耳其语)不会导致意外结果。如果您有兴趣继续阅读,请查看 the Turkey test .
关于c# - nUnit 下的 Contains 中不区分大小写的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24634245/