在功能测试中使用全局变量(使用Symfony和Codeception)

时间:2018-04-20 07:38:35

标签: symfony kernel functional-testing codeception

我想测试这个功能:

static protected function getContainerInterface()
{
    global $kernel;
    if (get_class($kernel) == 'AppCache') {
        /** @var \AppCache $cache */
        $cache = $kernel;
        $kernel = $cache->getKernel();
    }
    return $kernel->getContainer();
}

得到一个错误: 在null上调用成员函数getContainer() 由这个字符串触发:

return $kernel->getContainer();

如何在代码中将全局$ kernel对象传递给crawler(即FunctionalTester的实例)?

1 个答案:

答案 0 :(得分:2)

全局变量是一种不好的做法。我可以假设在运行测试时,codeception会创建自己的测试内核,而且这个内核不能全局使用。这个地方需要重构