Laravel 单元测试 - POST 请求负载

Laravel Unit Test - POST Request Payload

我需要帮助为 Laravel 创建单元测试用例。这是一个 API 端点,接受 json 作为 POST 有效负载(不是 POST 形式),基本上只是根据 json 在数据库中创建一个条目目的。 API 工作正常,但我在创建单元测试时遇到问题。

控制器代码包含

$request = Request::instance();
$content = $request->getContent();
$inputRequest = json_decode($content);

我不知道如何将有效载荷传递到单元测试代码中(扩展Illuminate\Foundation\Testing\TestCase

有人能帮忙吗?

谢谢堆

在单元测试中使用 laravel 提供的 call() 方法时。

第六个参数$content(String)可以用来传入post测试用例中的payload class:

$this->call($method, $uri, $parameters, $files, $server, jsonencode($yourdata), $changeHistory);

当使用备用 action() 方法时,确保在 $uri 之后添加一个额外的数组,签名有点不同,它有 $wildcards 数组:

Response::action(
    string $method, 
    string $action, 
    array $wildcards = array(), 
    array $parameters = array(), 
    array $files = array(), 
    array $server = array(), 
    string $content = null, 
    bool $changeHistory = true
)