我正在编写PHPUnit测试,我正在尝试测试我的树枝视图是否正确渲染。
$expected='<html>
<p>The status of user!</p>;
</html>'
self::bootKernel();
$twig = self::$kernel->getContainer()->get('twig');
$actual = $twig->render('user-test.html.twig');
$this->assertEquals($expected, $actual);
但是user-test.html.twig
在默认情况下扩展了'base.html.twig
,在这个测试用例中不需要。
:
{% extends 'base.html.twig' %}
<html>
<p>The status of user!</p>;
</html>
是否有一种方法,我可以模拟base.html.twig
模板和测试只是user-test.html.twig
没有抛出错误?
我认为你有一个错误在你的模板,因为如果你扩展另一个模板,你所有的HTML代码需要在{% block blockname %}...{% endblock %}
标签与blockname
块定义在base.html.twig
。
{# user-test.html.twig #}
{% extends 'base.html.twig' %}
{% block main %}
<html>
<p>The status of user!</p>;
</html>
{% endblock %}
也许你能做的是,你可以用你需要检查的部分制作另一个模板,并包括它。
{# user-test.html.twig #}
{% extends 'base.html.twig' %}
{% block main %}
{% include '_user-test.html.twig' %}
{% endblock %}
{# _user-test.html.twig #}
<html>
<p>The status of user!</p>;
</html>
然后测试_user-test.html.twig
只呈现你想要的。