Laravel 5.4でphpunitでを使用していくつかのHTTPテストを実行しています。私がassertEqualsを使って私のモデルで他のテストを実行するとき、私は通常どのプロパティ、フィールドなどが予想よりも異なっているかについて非常に良いフィードバックを得る。しかし、assertJson
メソッドは、はの違いがありますが、は違いがありますか?の違いがあることを通知します。たとえば、のは、私は、このJSONを返すルートmy/route
を持っているとしましょう:LaravelでのHTTPテスト時のJSONの違いを表示
{
"name": "test",
"foo": "bar"
}
私はこのLaravelのテストを実行する可能性がある:予想通り
$response = $this->get("my/route");
$response->assertJson([
'name' => 'test',
'foo' => 'baz',
]);
私のテストは失敗します。しかし、結果のメッセージはかなり役に立たないです:より大きな応答で非自明例えば
Failed asserting that an array has the subset Array &0 (
'name' => 'test'
'foo' => 'baz'
).
が、それはJSONレスポンスの間で異なっているかを把握しようとするためにはかなり迷惑得ることができます。 何かが2つの間で異なることを知るのではなく、期待された出力と実際の出力の具体的な違いを見る方法はありますか?
JSONレスポンスは多次元ですか? –
@RossWilsonはい、おそらく。これは、特定のリクエストではなく、一般的なhttpテストのためのものですが、多次元JSONを返すルートは間違いなくあります。 –