0

ZF2でPhpUnitを使用して単体テストを実行すると、次のメッセージが表示されます。

302が予想される200と一致することを表明できませんでした

ZF2のリダイレクトコマンドが原因で表示されたことを理解しています。

return $this->redirect()->toUrl('/admin/album/add');

しかし、ブラウザでアクセスすると、サイトは上記のコードで検索されます。しかし、単体テストでは失敗します。

何を変更する必要がありますか?

4

1 に答える 1

3

ブラウザは単体テストと同じではなく、その逆も同様です。あなたの期待や結果は異なります。

302応答コードを受信したブラウザはリダイレクトする必要があります。これは、応答のURLを取得して、新しいリクエストを送信することを意味します。ブラウザに表示される結果は、リダイレクトされたページです。

ユニットテストはリダイレクトされません。単体テストは、指示されたとおりに実行するだけです。ユニットテストでリダイレクトをテストする必要がある場合は、応答を評価し、正しいアサーションは200ではなく302です。

リダイレクトのURLが正しいことを確認したい場合は、実際に新しいページをフェッチする別のテストを作成し、その応答を200OKでテストする必要があります。

于 2012-10-29T13:10:10.067 に答える