seeResponseMatchesJsonType
コマンドの使用に問題があります。コード参照seeResponseMatchesJsonTypeコマンド
私はvarsの名前と値を持つjson文字列を持っており、エラーは"escrow_status" => "string|null"
にあります。変数$escrow_status
は初期化されておらず、nullが返されることが予想されますが、代わりにエラーが発生します。
希望して、誰かがこの問題を解決する方法を知っています。
seeResponseMatchesJsonType
コマンドの使用に問題があります。コード参照seeResponseMatchesJsonTypeコマンド
私はvarsの名前と値を持つjson文字列を持っており、エラーは"escrow_status" => "string|null"
にあります。変数$escrow_status
は初期化されておらず、nullが返されることが予想されますが、代わりにエラーが発生します。
希望して、誰かがこの問題を解決する方法を知っています。
JsonTypeはオプションフィールドをサポートしていません。
フィールドが見つからない場合は、JsonTypeでフィールドをチェックしないでください。
@Naktibaldaさんのコメントによると、そのアサーションを2つに分割する必要があります。それを行うには多くの方法がありますが、一つは次のとおりです。
$I->canSeeResponseIsJson();
$data = json_decode($I->grabResponse());
$I->assertArrayHasKey('escrow_status', $data); // might need the assert module
I:
$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
)。
次に、私はjsonの文字列のデータのタイプをチェックできますか? –
理想的には、2つの別々のテストが必要です.1つはフィールドが存在し、それが文字列であり、もう1つはフィールドがない場所です。 – Naktibalda