Модульное тестирование шаблонов Smarty - PullRequest
4 голосов
/ 27 июня 2011

Я использую Smarty Templates, и мне было просто интересно узнать, есть ли какой-нибудь механизм тестирования, который я могу иметь на нем.Количество различных шаблонов файлов увеличивается, а также сложность.В идеале я хотел бы протестировать окончательный выходной HTML-код, чтобы убедиться, что шаблоны / условия / переменные, используемые в Smarty, работают должным образом.Есть ли способ сделать это?

1 Ответ

4 голосов
/ 27 июня 2011

Вы можете использовать функцию 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);
    }

}
...