Модульные тесты на вывод HTML?

Это может быть немым вопросом, но Вы делаете модульные тесты на вывод HTML Ваших функций/сценариев PHP?

Я пытаюсь разделить свой HTML и свой PHP - т.е. HTML включает с заполнителями и функционирует для определенных повторяющихся элементов (табличные данные / любой вид циклично выполненного вывода) - но я не уверен, как пойти о проверке этого.

Существует ли стандартный способ пойти о таких вещах, или это - главным образом вопрос использования регулярных модульных тестов на функциях, которые создают вставленное содержание и затем проверку, что это выглядит корректным в Блоке проверки допустимости браузера/W3C?

Спасибо.

Править: Я предполагаю, что заключение к этому было бы: эти виды модульных тестов даже стоит иметь? Если бы Вы сохраняете свое содержание и структуру правильно разделенными, то Вы действительно только протестировали бы, горстка включает в очень ограниченные сценарии (по-видимому, так или иначе). Это действительно стоит того для полуизготовления вручную полных страниц только, чтобы иметь файл для сравнения с?

15
задан kiamlaluno 7 August 2010 в 06:12
поделиться

2 ответа

Тестирование вывода HTML будет считаться тестом покрытия.Первоначально, когда я начал использовать PHP, я создавал эти тесты, но со временем я обнаружил, что эти тесты были не так уж и полезны.

Если есть что-то, что я знаю, так это то, что презентация изменит лот с начальной разработки на развертывание.

Если задуматься, цикл for на самом деле не логика, а функция изометрического преобразования, и если вы следуете Разделение проблем , то вы передаете данные в цикл for с помощью метода какой-то. Я бы рекомендовал проверить, что цикл for получает правильные данные, но не выводит цикл for.

Если вы обнаружите, что повторяете себя при создании таблиц, непременно начните модульное тестирование этих шаблонов таблиц. Но, опять же, вы обнаружите, что эти шаблоны претерпят много изменений.

На этом этапе вам следует подумать об отделении итерации от вывода HTML, чтобы изолировать себя от этих проблем в ваших тестах.

Один из способов сделать это - использовать функцию сопоставления, она берет список и функцию преобразования и выполняет функцию для каждого элемента в списке, а затем возвращает преобразованный список.

Обычно при создании таблиц я получаю два цикла for при создании строки.

  1. Итерировать по всем строкам.
  2. В (1) перебирать элементы в строке.

Довольно некрасиво для модульного тестирования, но с помощью замыканий вы можете создавать генераторы функций, которые было бы действительно легко [это сказано с некоторой долей скептицизма] для реализации.

5
ответ дан 1 December 2019 в 03:42
поделиться

Вы можете использовать PHPUnit. В нем есть Output testing.

http://www.phpunit.de/manual/3.0/en/testcase-extensions.html

3
ответ дан 1 December 2019 в 03:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: