Laravel 5.2: 测试中seeJson的逆向(reverse)

Laravel 5.2: Inverse (reverse) of seeJson in testing

我一直在 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 的文档,但还没有找到实现它的方法。

如有任何建议,我们将不胜感激。

PS

为了确保特定对象不包含在响应中,计算响应中对象的总数就足够了。

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

但是 PHPUnit4/Laravel5.2 呢?

请务必注意,这些是 Laravel 5.2 方法,而不是 Illuminate\Foundation\Testing\TestCase 中定义的 PHPUnit 方法。

seeJson 的逆函数是 dontSeeJson。

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