首页 > 解决方案 > Laravel 5.2:测试中seeJson的逆(reverse)

问题描述

我一直在 Laravel 5.2 上使用 PHPUnit 4.8,想知道是否可以查看 API 调用的响应中是否没有 JSON 对象。

您可以查看响应是否具有特定对象,但是相反呢?

$this->json('GET', 'api/items')
        ->seeJson(['id' => "100"])
        ->notSeeJson(['id' => "222"])//Is there anything like it?
        ->assertResponseOk();

我一直在阅读 PHPUnit 和 Laravel 5.2 的文档,但还没有找到如何实现它。

任何建议将被认真考虑。

附言

为了确保响应中不包含特定对象,只需计算响应具有的对象总数即可。

使用较新版本的 PHPUnit,可以使用assertJsonCount(2, 'data').

但是 PHPUnit4/Laravel5.2 怎么样?

标签: laravelphpunitlaravel-5.2

解决方案


重要的是要注意这些是 Laravel 5.2 方法,而不是 PHPUnit 方法,定义在Illuminate\Foundation\Testing\TestCase.

seeJson 的倒数是 dontSeeJson。

$this->json('GET', 'api/items')
    ->seeJson(['id' => "100"])
    ->dontSeeJson(['id' => "222"])
    ->assertResponseOk();

推荐阅读