首页 > 解决方案 > Laravel 5.8 | 测试像 assertJsonMessage 这样的 JSON 响应?

问题描述

我想测试 json 测试响应是否包含不同的值,在这种情况下是错误消息,如下所示:

public function testFieldsAreRequired()
{
    $this->postJson('/posts', [])
        ->assertStatus(422)
        ->assertJsonValidationErrors([
            'name',
            'email',
            'date_of_birth',
        ])
        ->assertJsonFragment([
            'The name field is required.'
        ])
        ->assertJsonFragment([
            'The email field is required.'
        ])
        ->assertJsonFragment([
            'The date of birth field is required.'
        ]);
}

这种方法效率不高。我正在寻找一种方法,如下所示:

.....
->assertJsonMessage([
    'The name field is required.',
    'The email field is required.',
    'The date of birth field is required',
]);

像上面一样,我不需要指定键并且可以在一个数组中指定不同的值。因此,它非常有效且易于管理。

但是assertJsonMessage是一种受保护的方法,所以我不确定原始设计和使用这种方法。

标签: laravellaravel-5

解决方案


推荐阅读