Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何测试返回的数组至少包含一个具有特定属性值的值_C#_Asp.net_Unit Testing - Fatal编程技术网

C# 如何测试返回的数组至少包含一个具有特定属性值的值

C# 如何测试返回的数组至少包含一个具有特定属性值的值,c#,asp.net,unit-testing,C#,Asp.net,Unit Testing,假设我有一个我想测试的方法: public Cars[] GetCars(); 我想测试这个方法返回的数组是否至少包含一辆“Mustang”类型的汽车 我该怎么做呢 目前我有如下代码: [Test] public void GetCars_ReturnsMustangs() { Cars[] cars = GetCars(); foreach(Car car in cars) { Assert.IsTrue(Car.Type == "Mustang");

假设我有一个我想测试的方法:

public Cars[] GetCars();
我想测试这个方法返回的数组是否至少包含一辆“Mustang”类型的汽车

我该怎么做呢

目前我有如下代码:

[Test]
public void GetCars_ReturnsMustangs()
{
   Cars[] cars = GetCars();

   foreach(Car car in cars)
   {
      Assert.IsTrue(Car.Type == "Mustang");
   }
}
虽然就我所知,这是一个测试,但我知道在测试中加入循环不是一个好主意

有人能提出更好的选择吗


谢谢

像这样的东西应该可以做到,只需确保添加“usingsystem.Linq;”

(该代码尚未测试语法错误,但应该可以正常工作)


编辑:
.Count()>0
替换为
。根据@John的评论选择任何()

using System.Linq

[Test]
public void GetCars_ReturnsMustangs()
{
   Cars[] cars = GetCars();
   Assert.IsTrue(cars.Any(c => c.Type == "Mustang"));
}
编辑:

这是一篇关于何时使用Count()和何时使用Any()的好文章

关于:

Assert.IsTrue(cars.Any(c => c.Type == "Mustang"));
您可以使用:


. 使用Any()而不是Count可能会更好。看到这个参考@John-谢谢,在你提到之前我不知道.Any()。感觉我每天都在学习关于LINQ的新东西哈哈
Assert.IsTrue(cars.Any(c => c.Type == "Mustang"));
Assert.Exists(cars, x => x.Type == "Mustang");