Почему я должен тестировать мои HTMLHelpers? - PullRequest
5 голосов
/ 29 сентября 2010

Есть ли какая-то ощутимая ценность в модульном тестировании ваших собственных htmlhelpers? Многие из этих вещей просто выплевывают кучу HTML-разметки - мало, если нет логики. Итак, вы просто сравниваете одну большую строку HTML с другой? Я имею в виду, что некоторые из этих вещей требуют, чтобы вы посмотрели на сгенерированную разметку в браузере, чтобы убедиться, что это именно тот вывод, который вы хотите.

Кажется, немного бессмысленно.

Ответы [ 6 ]

2 голосов
/ 29 сентября 2010

Да.

Хотя логики сейчас может быть мало или вообще нет, это не значит, что в будущем не будет добавлено больше логики. Когда эта логика добавлена, вы хотите быть уверены, что она не нарушает существующую функциональность.

Это одна из причин написания модульных тестов.

Если вы следите за разработкой, управляемой тестами, вы сначала пишете тест, а затем пишете код, соответствующий тесту.

Это еще одна причина.

Вы также хотите убедиться, что вы идентифицируете и тестируете любые возможные крайние случаи с вашим Помощником (например, неоткрытые литералы HTML, некодированные специальные символы и т. Д.).

0 голосов
/ 30 сентября 2010

Да, это должно быть проверено.Основное правило: если его не стоит тестировать, его не стоит писать.

Однако при написании тестов вам нужно быть немного осторожнее.Существует опасность, что они могут быть очень «хрупкими».

Если вы пишете свои тесты так, что вы получаете определенную строку, и у вас есть несколько помощников, которые вызывают других помощников.Изменение одного из основных помощников может привести к сбою очень многих тестов.

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

0 голосов
/ 30 сентября 2010

Да, есть ценность.Сколько стоит определить.; -)

Вы можете начать с базовых тестов «возвращает что-то», и вам не важно, ЧТО.В основном просто быстрые тесты на здравомыслие, на случай, если что-то фундаментальное сломается.Затем, когда возникнут проблемы, добавьте больше деталей.

Также подумайте о том, чтобы ваши тесты анализировали HTML в DOM, которые гораздо проще проверять, чем строки, особенно если вы ищете какой-то определенный бит.

Или ... если выиметь автоматические тесты для самого веб-приложения, убедитесь, что есть тесты, специально предназначенные для вывода ваших помощников.

0 голосов
/ 30 сентября 2010

Написав, например, HTML-помощники для меню карты сайта или кнопки для структуры мастера, я могу заверить вас, что у некоторых помощников есть много логики, которая требует проверки, чтобы быть надежной, особенно если она предназначена для использования другими.

Так что это зависит от того, что вы делаете с ними на самом деле. И только вы знаете ответ на этот вопрос.

Общий ответ таков: Html Helpers могут быть произвольно сложными (или простыми), в зависимости от того, что вы делаете. Таким образом, нет ничего проще, чем с чем-либо еще, чтобы проверить, когда вам нужно.

0 голосов
/ 30 сентября 2010

принимает простой ввод и предоставляет простой вывод. Это хорошо для TDD, так как время, которое вы собирались потратить на сборку -> запустить сайт -> исправить эту глупую проблему -> начать заново -> упс, пропустил эту другую мелочь -> начать ... мы закончили , счастливый :). Приходит Dev 2 и вносит небольшие изменения, чтобы «починить» его для чего-то, что не работало тогда, тот же цикл продолжается, и dev 2 не заметил, когда он сломал другие ваши сценарии.

Вместо этого вы v. Быстро делаете простой простой текст v, и этот простой вывод дал вам тот простой вывод, который вы ожидали со всеми ожидающими закрывающими тегами и кавычками.

0 голосов
/ 30 сентября 2010

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

Я понимаю, что вы не хотите писать тесты, хотя ... это может быть довольно неприятно писать несколько строк HTML-кода генерации, для тестирования которого требуется 5X.

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