如何断言IEnumerable <string>

问题描述

我想知道这种方法是否是断言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"));
}

解决方法

否,这不是检查其中一条消息包含单词merge的最佳方法。不需要底层序列将其内容呈现为TextHere的一部分,实际上不需要像ToString这样的实现。

尝试改用Linq List<>扩展方法:

Contains

如果要检查任何字符串是否包含子字符串Assert.IsTrue(messages.Contains("TextHere"));,请使用TextHere

Any