symfony2:在UnitTests中使请求成为MasterRequest的原因

时间:2016-09-27 09:02:35

标签: symfony phpunit

我有一个现象: 我有一个Listener,它在onKernelRequest中创建一个闭包,如果它是MasterRequest。我检查我正在处理的请求是否是MasterRequest,以避免多次运行此闭包。

当我在浏览器中运行代码时,一切都很好并且表现得像预期的那样。但是,如果我在使用WebTestCase的功能测试中使用phpunit运行它,则两个测试用例的行为类似于浏览器,但第三个测试用例从不作为MasterRequest进行,因此在测试中我的代码永远不会通过。

是否有人更了解什么使请求成为MasterRequest?它与路由有关吗?导致问题的第三种情况是使用/ with get参数,而其他情况依赖于公共路由。

1 个答案:

答案 0 :(得分:0)

我认为这不是关于请求,而是关于HttpKernelInterface

查看github处的代码。内核将每个请求视为主请求或子请求。所以这取决于内核。

在您的测试中,您可能会在两种情况下创建一个新内核,但在第三种情况下,它是一个现有内核。这只是猜测,您应该只是调试它。