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 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`; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |