php – Twig模板单元测试

前端之家收集整理的这篇文章主要介绍了php – Twig模板单元测试前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开始考虑Symfony中的twig模板的持续集成.

>模板是独立的逻辑.
>模板中有错误.但在开发过程中,我不想被视觉检查分散注意力.

是否有任何现成的解决方案可以在交响乐中对twig文件进行单元测试?

除了通过lint来验证Twig模板文件的结构和语法正确性之外,您还可以对Twig模板的逻辑进行单元测试.

例如,您可以验证if-elseif-else-endif构造的正确行为,并且您可以单独执行此操作,也就是说,无需通过具有所有依赖项的控制器.

看看https://github.com/journeymonitor/control/blob/2645c69/src/AppBundle/Resources/views/testcases/_testresults-overview-testresult-label.html.twig.这是一个非常简单的模板,但确实有一些行为 – 取决于testresult.exitCode的值,必须输出不同的标签名称.

https://github.com/journeymonitor/control/blob/bc42e78/tests/AppBundle/Resources/views/testcases/_testresults-overview-testresult-label.html.twig.test.php,您可以看到此模板的单元测试用例.

测试用例设置了一个新的Twig_Environment,它允许您加载Twig模板文件并使用作为参数传入的不同Testresult对象进行渲染.然后可以像在任何其他PHPUnit测试中一样声明渲染操作的结果:

$loader = new Twig_Loader_Filesystem(__DIR__ . '/../../../../../src/AppBundle/Resources/views/testcases/');
$twig = new Twig_Environment($loader,array(
    'cache' => '/var/tmp/journeymonitor-twig-tests-cache',));
$template = $twig->loadTemplate('_testresults-overview-testresult-label.html.twig');

$testresult = new \AppBundle\Entity\Testresult();
$testresult->setExitCode(0);

$this->assertSame('success',$template->render(['testresult' => $testresult]));

注意第8行和第9行的shell命令–Twig环境缓存其模板文件,为了进行可靠的测试,您需要确保在每次测试运行之前擦除缓存位置:

`rm -rf /var/tmp/journeymonitor-twig-tests-cache`;
`mkdir -p /var/tmp/journeymonitor-twig-tests-cache`;
原文链接:https://www.f2er.com/php/133690.html

猜你在找的PHP相关文章