加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – Twig模板单元测试

发布时间:2020-12-13 22:38:27 所属栏目:PHP教程 来源:网络整理
导读:我开始考虑Symfony中的twig模板的持续集成. 模板是独立的逻辑. 模板中有错误.但在开发过程中,我不想被视觉检查分散注意力. 是否有任何现成的解决方案可以在交响乐中对twig文件进行单元测试? 除了通过lint来验证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 AppBundleEntityTestresult();
$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`;

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读