Php 如何使用Codeception在两个层次上查看ResponseContains?

Php 如何使用Codeception在两个层次上查看ResponseContains?,php,laravel,laravel-5,codeception,Php,Laravel,Laravel 5,Codeception,我是Codeception的新手,我正在尝试使用相同的方法测试我的web服务。现在我正试图弄清楚如何深入挖掘和测试来自不同API点的输出。例如,我试图创建一个用户并检查响应是否包含必要的详细信息 CreateUserCept.php <?php $faker = Faker\Factory::create(); $I = new ApiTester($scenario); $I->wantTo('create a new user'); $I->haveHttpHeader(

我是Codeception的新手,我正在尝试使用相同的方法测试我的web服务。现在我正试图弄清楚如何深入挖掘和测试来自不同API点的输出。例如,我试图创建一个用户并检查响应是否包含必要的详细信息

CreateUserCept.php

<?php 
$faker = Faker\Factory::create();
$I = new ApiTester($scenario);
$I->wantTo('create a new user');
$I->haveHttpHeader('Authorization', 'Bearer ' . file_get_contents('tests/api/token'));
$I->sendPost('users', [
    "first_name"    => "Test",
    "last_name"     => "Test",
    "email"         => 'test@test.com',
    "password"      => "testing",
    "role"          => "1"
]);
$I->seeResponseCodeIs(200);
$I->seeResponseIsJson();
现在我可以做如下断言:

$I->seeResponseContainsJson(['status' => 'success']);
它就像一个符咒,但当我这么做的时候:

$I->seeResponseContainsJson(['data.first_name' => 'Test']);

它失败了。深入研究这些内容并检查JSON响应是否正确的正确方法是什么?

这对我来说终于奏效了:

$I->seeResponseContainsJson(['data' => [
    'first_name' => 'Test'
]]);
$I->seeResponseContainsJson(['data' => [
    'first_name' => 'Test'
]]);