2009-02-08 1 views
0

Я использую Ruby's Test :: unit для сравнения результата сгенерированного html с ожидаемым результатом. (не используя рельсы). Меня не интересуют пробельные различия, но они почти всегда возникают во время тестов. Есть ли какой-либо механизм тестирования для сравнения html, игнорируя бессмысленные пробелы. Я вижу, что есть аналогичный вопрос для python here. Я ищу ответ на Ruby.Ruby Unit :: Test для сравнения вывода html путем игнорирования пробелов

ответ

1

Или просто лишить пробельные себя

assert_equal html_string.gsub(/\s+/, ' '), '<a href="foo">' 
+0

Просто попробовал это регулярное выражение - на самом деле он не ел все лишние пробелы. –

+0

Я думал об этом слишком сильно. '/ \ s + /', похоже, работает, хотя –

+1

Удаление всех пробелов - не идеальное решение, потому что пробелы значительны внутри элементов 'pre', например. –

1

assert_select - это то, что вы хотите. Он позволяет использовать селектор CSS для синтаксического анализа HTML и проверки правильности значений.

Смотрите эту assert_selectcheat sheet

EDIT: Я пропустил это не necesarily рельсы. Вы можете либо импортировать соответствующий рельс в свою тестовую среду, либо использовать что-то вроде HPricot, чтобы позволить вам оценивать результат как HTML и проверять правильные значения.

+0

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