![]() |
|
![]() ![]() ![]() |
|
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: нет Всего: 11 |
Изучаю тестирование в rails...
В книге сказано, что этот метод имеет три параметра: assert_equal(expected, actual, message) и тут же в книге приводиться пример где параметров всего два а не три: assert_equal "Это название уже использовалось", product.errors.on(:title) поэтому я не могу разобраться как работает этот метод с двумя параметрами. Что происходит в строке: assert_equal "Это название уже использовалось", product.errors.on(:title) ? Я так понимаю чтобы этот метод вернул true, надо чтобы строка product.errors.on(:title) вернула строку: "Это название уже использовалось", тогда первый и второй параметр будут равны. Как такое можно смоделировать? Вот класс: class Product < ActiveRecord::Base validates_uniqueness_of :title end И в случае ошибки, будет получено предупреждение на английском языке из product.errors.on(:title) и поэтому сравнивать английское сообщение с "Это название уже использовалось" не имеет смысла? В файле теста имею:
фикстура: #START:ruby ruby_book: id: 1 title: Programming Ruby description: Dummy description price: 1234 image_url: ruby.png #END:ruby rails_book: id: 2 title: Agile Web Development with Rails description: Dummy description price: 2345 image_url: rails.png После применения теста вижу: Failure: test_unique_title(ProductTest) [D:/3rdRail/workspace/depot/test/unit/product_test.rb:31]: <"Рто название СѓР¶Рµ использовалось"> expected but was <"has already been taken">. Что за аброкадабра и почему я вижу сообщение на английском языке <"has already been taken">? |
|||
|
||||
source777 |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1878 Регистрация: 12.3.2007 Репутация: 12 Всего: 56 |
Посмотри внимательно сигнатуру метода:
Параметры бывают обязательные и необязательные(у которых есть значение по умолчанию). В данном случае message имеет по умолчанию значение nil, след. метод можно вызвать и с 2, и с 3 параметрами, по желанию.
Правильно, нужно поставить gem russian, чтобы сообщения об ошибках валидации были на русском. Это у тебя спросить надо! Почему у тебя кодировка консоли не UTF-8? Или ты плохая девочка и используешь Windows для веб-разработки? ![]() Если так, то поставь хотя бы Cygwin, чтобы сократить кол-во проблем, связанных с этой ОС, а лучше VirtualBox и Ubuntu, если комп позволяет гонять полноценную виртуальную машину. -------------------- Если бы программистам платили за то, чтобы убирать код из программы вместо того, чтобы добавлять его, программы были бы намного лучше © Николас Негропонте |
||||||
|
|||||||
Лена |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 879 Регистрация: 16.8.2006 Репутация: нет Всего: 11 |
Спасибо, понятно.
Я использую этот продукт http://www.embarcadero.com/products/3rdrail он очень удобен и посколку я работаю с другими продуктами компании Embarcadero менять я его не хочу. ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Ruby on Rails" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, source777. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Ruby On Rails | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |