| Тестирование в Rails |
|
|
| Автор Westry | |
| 01.02.2008 г. | |
|
Цель - проверить корректную работу моделей - создание, изменение, удаление, бизнес логику и т.д. * для созданных через генератор моделей, автоматически создается одноименный таблице файл в папке test/fixtures, например users.yml, и заготовка файла тестирование в папке test/unit - user_test.rb * запуск конкретного unit теста -
ruby user_test.rb, либо из корня приложения: ruby test/unit/user_test.rb * запуск всех тестов (юнит/функциональных), в корне приложения: rake * содержимое папки fixtures - соотв. таблицам, и заполняется автоматически при запуске каждого теста в рамках TestCase. * содержимое fixtures это yaml формат * в fixtures можно вставлять ruby код (<%= %>), удобно для формирования актуальных для тестов дат, например <%= 1.day.from_now.strftime("m-H:S") %> * для тестирования необходима отдельная БД, appname_test, конфигурация в config/database.yml * при запуске тестов структура production версии БД копируется в тестовую БД. * метод fixtures для теста, загружает в атрибут класса значение соотв. файла, например class UserTest < Test::Unit::TestCase fixtures :users становится доступным переменная @users, которая содержит users.yml файл. если содержимое файла users.yml ivanov: id: 1 name: ivanov petrov: id: 2 name: petrov то в @users можно получить доступ @users['ivanov'] также появляются - @ivanov, @petrov и соотв. доступны @ivanov['name'] (или же @ivanov.name ) отключается с помощью: self.use_instantiated_fixtures = false в test_helper.rb * test_helper.rb - отправная точка для всех тестов - делает добавления в Test::Unit::TestCase базовый класс. можно добавить свои проверки, например assert_salable(product), и использовать уже его в тестах. внутри своего теста, использовать функцию "assert", первый параметр - булевое, второе - сообщение, в случае отрицательного результата. assert( boolean, message ) Functional тестирование - тестирование контроллеров в Rails.
Источник: ror2ru.elementalcms.org |
| « Пред. | След. » |
|---|


