Laravel 测试:断言部分 JSON 数据是否存在
Laravel 为测试你的应用程序提供了许多有用的帮助,它通过其流畅的 API 对测试 HTTP 提供了极大的帮助。
assertJsonFragment
方法是允许你查找指定的片段,而不是整个 JSON 响应。
下面是一个简单的例子来说明它是如何工作的。假设你的应用程序可以获取到特定的用户信息:
Route::get('/api/users', function() {
return App\User::all();
});
这将为所有用户返回 JSON:
// /api/user/
[
{"id":1,"name":"Bill Murray","email":"bill.murray@example.org","created_at":"2017-02-14 01:53:04","updated_at":"2017-02-14 01:53:04"},
{"id":2,"name":"John Doe","email":"john.doe@example.org","created_at":"2017-02-14 02:23:14","updated_at":"2017-02-14 02:23:14"}
]
现在使用新的 assertJsonFrament
你可以这样去测试它:
/** @test */
function test_json_response()
{
$response = $this->json('GET', '/api/user/1');
$response
->assertStatus(200)
->assertJsonFragment([
'name' => 'Bill Murray',
]);
}
在你的仓库中它仅仅只是一个小工具,它使你的测试更加容易。查看 文档 以后了解测试 JSON 响应的其他方法。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。