如何在 PHPUnit / Laravel 中模拟 JSON 文件

Jen*_*ski 3 php phpunit json mocking laravel

我创建了一个服务,其中从外部源检索 JSON 并进行查询。我希望能够独立于该服务来测试使用该服务的功能。如何在 PHP 单元测试中模拟 JSON 文件以测试这些函数?JSON 文件格式如下:

{
    "data": [
        {
            "title": "Development",
            "children": [
                {
                    "title": "Settings",
                    "channel_types": [
                        {
                            "title": "Network"
                        }
                    ]
                },
                {
                    "title": "Testing",
                    "channel_types": [
                        {
                            "title": "Social"
                        }
                    ]
                }
            ],
            "created_at": 1523464038,
            "updated_at": 1523464038,
            "id": "5ace37664e1d4400a04ffaf2"
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

小智 5

您可以将 json 保存为测试文件,即。存储/测试/json/test-data.json

然后在设置测试时检索它:

$path = storage_path("testing/json/test-data.json") ;

$json = file_get_contents($path); 
Run Code Online (Sandbox Code Playgroud)