Rob*_*bok 6 php phpunit json laravel
我用 Laravel 准备了一个示例 API。它总是返回这个对象:
{
"a": 1,
"b": 2
}
Run Code Online (Sandbox Code Playgroud)
现在,我想更好地了解如何使用phpunit
. 我发现有assertJson
和assertJsonFragment
方法,但我无法理解它们之间的区别。
假设我想断言响应的确切结构,因此它需要是a=1
和b=2
,仅此而已。起初,我确信这会起作用:
$response = $this->get('/api/foo');
$response->assertStatus(200)
->assertJson(['a' => 1, 'b' => 2]);
Run Code Online (Sandbox Code Playgroud)
它将通过测试,但问题是,如果我向响应添加更多属性(例如c=3
或其他属性),它仍然会通过测试。然后有一种assertJsonFragment
方法,对于我的测试,其行为相同,只是给出不同的错误消息。
是assertJson
越野车吗?有没有其他方法可以完成我想要做的事情,即确保响应是这组特定的属性?
在 Laravel 5.6 和 5.7 上测试。