我想用 Twig 和 PHPUnit 实现一些单元测试(两者都与 Composer 一起安装,并添加了 slim/views)。但是当我尝试测试模板生成时,它会在 {{ baseUrl() }} 处阻塞。但是当我在导航器上测试模板时,没有 phpunit,模板工作正常。
这是错误消息:
Twig_Error_Runtime: An exception has been thrown during the rendering of a template
("Undefined index: REQUEST_METHOD") in "application/General.twig" at line 21.
正如本文所述,为 slim 框架编写测试用例并不是那么容易。您可以如下模拟 SLIM 环境:
// Prepare a mock environment
Environment::mock(array_merge(array(
'REQUEST_METHOD' => $method,
'PATH_INFO' => $path,
'SERVER_NAME' => 'slim-test.dev',
), $options));
$app = new \Slim\Slim();
$this->app = $app;
$this->request = $app->request();
$this->response = $app->response();
完整代码示例在这个要点
希望这有帮助