Тестирование: как проверить, что представление содержит нужные данные

Скажите, что шеф-повар может делать рецепты, а су-шеф-повар может создавать рецепты, которые должны быть утверждены шеф-поваром.

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

Я могу придумать два способа сделать это:

Проверьте, что представление содержит определенные слова, такие как «Ваши рецепты» и «Рецепты, ожидающие вашего одобрения» Добавьте ненужные атрибуты к используемым html-элементам, чтобы можно было проверять наличие элементов с помощью «id = recipe_1» или «data-for-the-sake-of-testing = 1»

Мне очень не нравятся оба этих подхода.

Почему подход № 1 отстой Невероятно хрупкие тесты. Каждый раз, когда вы хотите внести небольшие изменения в копию, тесты будут прерваны. I18n? Как это будет работать с таким подходом?

Возможно, есть и другие причины, но эти две довольно большие.

Почему подход № 2 отстой

Как досадно иметь лишнюю разметку только ради тестирования! У пользователя не должно быть увеличенного размера загрузки для тестов.

Какой хороший подход к этому? Мне интересно услышать любые альтернативы, на любом языке, на котором вы думаете. Я в основном думаю на Ruby, Test :: Unit, Minitest, RSpec и Cucumber (хотя мои навыки работы с Cuke устарели), но если другие языки / рамки если бы это выяснилось, я бы тоже хотел посмотреть, что они делают.

Ответы на вопрос(4)

Ваш ответ на вопрос