c# - nUnit 下的 Contains 中不区分大小写的比较

标签 c# nunit contains assert

我试图断言列表包含特定字符串。由于我需要不区分大小写地评估条件,因此我使用了一个解决方法(沿着 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/

相关文章:

c# - C# 和 C++ 应用程序之间的 map 和 shared_ptr 序列化?

database - EntityFramework 单元测试示例

c# - System.Random rnd = new System.Random(); 有多随机?

c# - GDI+ 异常将位图保存到 MemoryStream

c# - 如何获取 MultipartFormDataContent 的字符串表示形式

sql - SELECT FROM Table WHERE 不是部分的确切数字在字符串 SQL 中

java - 如何检查一个对象是否存在于java中的LinkedList中?

.net - nunit中的Explicit和Ignore属性之间有什么区别

c# - ScriptSharp 项目中的单元测试 C# 代码

java - 在没有自定义类的情况下覆盖 equals