我在使用seeResponseMatchesJsonType
命令时遇到问题。
我有一个带有vars名称和值的json字符串,并在"escrow_status" => "string|null"
中出错。变量$escrow_status
未初始化,我希望在那里得到null,但是会收到错误。
希望,有人知道如何解决这个问题。
答案 0 :(得分:0)
JsonType不支持可选字段 如果该字段可能丢失,请不要使用JsonType进行检查。
答案 1 :(得分:0)
就像@Naktibalda在评论中所说:你应该把这个断言分成两部分。有很多方法可以做到,一个是:
$I->seeResponseJsonMatchesJsonPat('$.escrow'); // you need JSON path module; I would expect seeResponseContainsJson could do it, but it appears that it also needs a value...
$I->seeResponseMatchesJsonType(["escrow_status" => "string|null"]);
另一种方法是声明响应是JSON,将其转换为数组并在该数组上进行断言:
$I->canSeeResponseIsJson();
$data = json_decode($I->grabResponse());
$I->assertArrayHasKey('escrow_status', $data); // might need the assert module
我假设你在测试中使用了一个actor类(因此$I
)。