c# - 如何断言 IEnumerable
问题描述
我想知道这种方法是否是断言 IEnumerable 字符串值的最佳方法,你能指导我如何断言它以取回整个字符串中的一些内容吗?谢谢。
[CodeStep("Assert message")]
public void Test()
{
var client = new HttpClient();
client.BaseAddress = new Uri("URLHere");
var response = string.Empty;
Task.Run(async () =>
{
response = await client.GetStringAsync("message/All");
}).Wait();
var messages = JsonConvert.DeserializeObject<IEnumerable<string>>(response);
Assert.IsTrue(messages.ToString().Contains("TextHere"));
}
解决方案
不,这不是检查其中一条消息是否包含单词的最佳方法TextHere
。底层序列不需要将其内容呈现为 的一部分ToString
,实际上实现就像List<>
don't 一样。
尝试改用 LinqContains
扩展方法:
Assert.IsTrue(messages.Contains("TextHere"));
如果要检查是否有任何字符串包含子字符串,请TextHere
使用Any
:
Assert.IsTrue(messages.Any(t => t.Contains("TextHere")));
推荐阅读
- angular - util方法的静态字段或const函数?
- equality - 为什么J公理在给出x,y的签名时需要2 x?
- java - 当用户选择复选框时如何在 Chrome 浏览器中取消选择复选框,导航到不同的页面并返回到同一个页面
- c++ - 为什么 OpenMP 比用于简单缩减的顺序程序慢?
- spring - 如何在 Spring Boot 应用程序中记录验证错误
- python - python中矩阵的最大列和行总和
- sorting - 对 .dat 文件的内容进行排序
- user-interface - 如何在 React-Native-Elements 中使用 AntDesign 图标
- ssh - 无法在 Windows 上使用 Git bash 进行 ssh - 权限被拒绝(公钥)
- json - 使用 SwiftyJSON 解析具有相似元素的 JSON