php - 如何在 Laravel 中测试 JSON 文件中存在的嵌套 JSON 数据?

标签 php json laravel unit-testing testing

目前我正在使用这个,它不适用于嵌套 JSON 文件

 public function testitemExists(){
        $response = $this->json('GET','/api/items');
        $response->assertStatus(200)->assertJsonFragment(['category'=>'drinks']);
    }
{
 "category" :"drinks",
  "items":[{
"item1":"mojito",
"item2":"cocacola"
}
]

}

如何测试 item1 => mojito 是否存在

最佳答案

试试这个(使用 Laravel 8.x):

    $response
    ->assertOk()
    ->assertJson(
        fn (AssertableJson $json) =>
        $json->has('category')
            ->has(
                'items',
                1,
                fn ($json) =>
                $json->where('item1', "mojito")
                    ->where('item2', 'cocacola')
            )
    );

这是official documentation .

关于php - 如何在 Laravel 中测试 JSON 文件中存在的嵌套 JSON 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67770324/

相关文章:

php - 是否可以仅对 MySQL 的临时表授予插入、更新和删除权限?

php - Ping站点并以PHP返回结果

php - 使用 PHP 命名空间

django - 在 Django 中序列化 json 中的对象列表

JSON 架构不支持某些正则表达式模式

php - Laravel 请求中的用户 ID 参数

php - 避免由于延迟时间和多个请求而导致的双重数据库查询

javascript - Javascript/Angularjs 中数字的平均值

php - Laravel Voyager 覆盖 BREAD Controller

laravel - Laravel nginx.conf与官方的Heroku php buildpack?