Лучшие практики Ruby on Rails в тестировании (флэш-сообщения и представления) и I18N - PullRequest
4 голосов
/ 22 ноября 2010

При тестировании Flash-сообщений и сгенерированных представлений следует проверить сгенерированный вывод на одном языке:

should_set_the_flash_to /Hello/i

или вы должны использовать I18N в своих тестах:

should_set_the_flash_to I18n.t("sign_up.welcome")

Возможно, мой вопрос просто не тот вопрос, который нужно задавать ... не стесняйтесь отвечать со ссылкой, если уже есть хорошие объяснения по поводу сочетания тестирования и i18n ...

Обновление : введите правильный код интернационализации после ответа Arsen7, спасибо Arsen7!

1 Ответ

5 голосов
/ 22 ноября 2010

Это зависит от того, что вы пытаетесь проверить.

Если вы проверяете, является ли флэш-текст «Привет», то вы уверены, что знаете, что увидит ваш пользователь.

С другой стороны, проверка того, содержит ли флэш-память то же самое, что и помощник "t", возвращает для данной строки, также имеет смысл иногда - например, когда ваш файл перевода часто изменяется или его содержимое создано кем-то другим Через некоторое время.

Лично я всегда проверяю точный, окончательный перевод (assert_equal "Hello", flash[:message] такие вещи).

Это заверяет меня, что: 1) перевод звучит нормально, 2) язык правильно распознается (вам не нужны польские сообщения для ваших английских пользователей, не так ли?)

Что касается второй части вашего вопроса:

Может быть, "should_set_the_flash_to I18n.t("sign_up.welcome")" сработает?

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