Laravel 8 測試 JSON APIs

2021-07-19 11:56 更新

Laravel 也提供了幾個(gè)輔助函數(shù)來測試 JSON APIs 和其響應(yīng)。例如,json,getJsonpostJson,putJsonpatchJson,deleteJson,以及 optionsJson 可以被用于發(fā)送各種 HTTP 動(dòng)作。你也可以輕松地將數(shù)據(jù)和請(qǐng)求頭傳遞到這些方法中。首先,讓我們實(shí)現(xiàn)一個(gè)測試示例, 發(fā)送 POST 請(qǐng)求到 /user,并斷言返回的期望數(shù)據(jù):

<?php

class ExampleTest extends TestCase
{
    /**
     * 一個(gè)基本的功能測試示例
     *
     * @return void
     */
    public function testBasicExample()
    {
        $response = $this->postJson('/user', ['name' => 'Sally']);

        $response
            ->assertStatus(201)
            ->assertJson([
                'created' => true,
            ]);
    }
} 

技巧: assertJson 將響應(yīng)轉(zhuǎn)換為一個(gè)數(shù)組,并利用 PHPUnit::assertArraySubset 來驗(yàn)證給定的數(shù)組存在于應(yīng)用返回的 JSON 響應(yīng)中。因此,如果 JSON 響應(yīng)中有其他屬性,測試仍舊會(huì)在給定數(shù)組存在的情況下通過。

此外,JSON 響應(yīng)數(shù)據(jù)可以作為數(shù)組變量在響應(yīng)上訪問:

$this->assertTrue($response['created']); 
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)