首页 > 解决方案 > 如何检查每个 Json 对象的某个键是否具有特定值?

问题描述

我正在编写一个单元测试来检查通过参数搜索是否返回正确的数据。例如,通过搜索参数 ''John'' 搜索 ''employees'' 表、列 ''firstName'' 应该只返回名称为 ''John''、''Johnny''、''john'' 等的员工。对于每个返回的员工,我在我的 JSon 文件中得到类似的内容:

{
 "_index": "employees",
 "_id": "xyz",
 "_score": 4.306519,
 "_source": {
    "id": 51,
    "districtId": 71,
    "firstName": "John",
    "lastName": "Smith",
    "divisionId": 20,
    "phone": "29437250"
}

我想编写一个 foreach 循环来遍历所有员工,看看每个员工的 firstName 是否对应于搜索参数,如下所示:

foreach (var employee in employeesReturned)
{
    ...
    Assert.True(employee.Contains(searchParameter,
        StringComparison.CurrentCultureIgnoreCase));
}

但是如何正确地写这个?我应该以某种方式遍历整个 JSON 文件吗?我应该反序列化它吗?什么是最佳做法?

标签: c#jsonunit-testingforeach

解决方案


推荐阅读