单元测试 Smarty 模板

发布于 2024-11-17 01:43:33 字数 126 浏览 2 评论 0原文

我使用 Smarty 模板,我只是想知道是否可以使用任何类型的测试机制。不同模板文件的数量不断增加,复杂性也不断增加。理想情况下,我希望测试最终输出 HTML,以确保 Smarty 中使用的模板/条件/变量按预期工作。有办法做到这一点吗?

I use Smarty Templates and I was just curious to know if there is any type of testing mechanism I can have on it. The number of different templates files are increasing and so is the complexity. Ideally I would love to test the final output HTML that comes to make sure templates / conditions / variables used in Smarty are working as expected. Is there a way to do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

━╋う一瞬間旳綻放 2024-11-24 01:43:33

您可以使用Smarty的fetch()函数。下面是一个松散的示例/伪代码。

要测试的模板

{* foo.tpl *}
<html>
    <head></head>
    <body>{$hi}</body>
</html>

预期输出

<!-- foo.html -->
<html>
    <head></head>
    <body>Hello World!</body>
</html>

TestCase 类

class FooTemplateTestCase extends TestCase {

    protected $_view;

    public function setup(){
        $this->_view = new Smarty();
        // setup smarty options, caching, etc
    }

    public function test(){
        $this->_view->assign('hi', 'Hello World!');

        $output = $this->_view->fetch('foo.tpl');
        $expected_output = file_get_contents('foo.html');

        $this->assertEquals($expected_output, $output);
    }

}

You can use Smarty's fetch() function. Below is a loose example/pseudo code.

Template to be tested

{* foo.tpl *}
<html>
    <head></head>
    <body>{$hi}</body>
</html>

Expected Output

<!-- foo.html -->
<html>
    <head></head>
    <body>Hello World!</body>
</html>

TestCase class

class FooTemplateTestCase extends TestCase {

    protected $_view;

    public function setup(){
        $this->_view = new Smarty();
        // setup smarty options, caching, etc
    }

    public function test(){
        $this->_view->assign('hi', 'Hello World!');

        $output = $this->_view->fetch('foo.tpl');
        $expected_output = file_get_contents('foo.html');

        $this->assertEquals($expected_output, $output);
    }

}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文