Php 如何使用Codeception在两个层次上查看ResponseContains?
我是Codeception的新手,我正在尝试使用相同的方法测试我的web服务。现在我正试图弄清楚如何深入挖掘和测试来自不同API点的输出。例如,我试图创建一个用户并检查响应是否包含必要的详细信息 CreateUserCept.phpPhp 如何使用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(
<?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'
]]);