2016-09-27 4 views
0

現象があります: 私はリスナーを持っています。これは、MasterRequestの場合は、onKernelRequestでクロージャを作成しています。私が処理しているリクエストが、このクロージャを何度か実行するのを避けるためのMasterRequestかどうかを確認します。symfony2:UnitTestsのMasterRequestを要求するもの

ブラウザでコードを実行すると、すべてがうまく動作し、意図したように動作します。しかし、WebTestCaseを使用した機能テストでphpunitを実行すると、ブラウザのように2つのテストケースが動作しますが、3つ目のテストケースはMasterRequestとしては到着しないため、テストでは決してコードが渡されません。

リクエストをMasterRequestにする理由について、より多くの洞察がありますか?それはルーティングと関係がありますか?問題の原因となっている3番目のケースは、/をgetパラメータとともに使用し、その他は共通ルーティングに依存しています。

答えて

0

私はそれが要求ではないと信じ、が、約HttpKernelInterface

githubでコードをチェックしてください。カーネルは、各要求をマスター要求またはサブ要求として扱います。だから、それはカーネルに任されています。

おそらく2つのケースでテストして、新しいカーネルを作成しますが、3番目のカーネルでは既存のカーネルを作成している可能性があります。それはちょうど推測です、おそらくそれをデバッグする必要があります。

+0

興味深いのは、テストと実際の使用の間で動作が異なる理由です。 マスターリクエストかサブリクエストのどちらかが明白です。デバッグを行うと、これがコードをスキップする理由であることがわかりました。 –

関連する問題