Как написать модульные тесты для кода, который использует шаблоны FreeMarker? - PullRequest
1 голос
/ 23 июля 2011

Я собираюсь использовать шаблонизатор в Java (вероятно, FreeMarker). Теперь мне интересно, как написать для него модульный тест.

Я могу подготовить ожидаемый вывод в виде текстового файла, но мне придется менять его вручную при каждом изменении шаблона. Я хотел бы проанализировать вывод с использованием шаблона, чтобы получить данные модели и его с исходной моделью. Могу ли я сделать это?

1 Ответ

2 голосов
/ 23 июля 2011

Зависит от того, что будет выводить ваш шаблон.Конечно, если бы он создавал правильно сформированный формат, такой как XML или JSON, вы могли бы легко его проанализировать, поэтому я могу предположить, что это, вероятно, HTML.Возможно, вы сможете использовать JTidy для анализа ее в модели DOM, которую можно использовать из Java.

http://jtidy.sourceforge.net/

Другой вариант может заключаться в использовании старой доброй подпрограммы grep, а затем в сборкеПримитивы, такие как assertContains, assertDoesNotContain и т. д. У меня есть библиотека JSON, для которой я пишу модульные тесты, и я выбрал этот путь, чтобы просто выполнить старую моду grep, и она хорошо работает, так как ловит ошибки.Я беспокоился о парсинге JSON-кода напрямую, потому что я использовал код, написанный в своих тестах, для тестирования самого кода.Ваш случай может отличаться, поэтому синтаксический анализ модели DOM может иметь больше смысла.

Главное, что нужно учитывать, это то, что вы тестируете представление.Поэтому, поскольку все меняется визуально, вам может быть очень трудно поддерживать свои тесты в актуальном состоянии.В большинстве программ представление сильно меняется, потому что ваш клиент, личный менеджер, человек, контролирующий то, что вы делаете, часто передумают.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...