Главная страница статей --> Хитрости при программировании php, заметки по базам данных

Тестирование в Rails

Источник: realcoding.net

Unit и functional тестирование в rails.

всё что относится к тестам находится в папке /test

Unit тестирование - тестирование моделей в Rails.

Цель - проверить корректную работу моделей - создание, изменение, удаление, бизнес логику и т.д.

* для созданных через генератор моделей, автоматически создается одноименный таблице файл в папке 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.

todo



Похожие статьи:
- Бесплатная «вечная» реклама любого товара + раскрутка сайта.
- Web 2.0 для дизайнеров
- Типичные ошибки сайтов
- Схема MVC в Ruby on Rails
- Быстрый старт - Rails + SQLite
- Разрушим величайший миф веб-дизайна
- Ruby on Rails vs. PHP stats
- PHP и mySQL (кратко)
- Время, затраченное на генерацию PHP скрипта
- Грубая сила – силища страшная!
- Бабочка MCMG
- Скролинг в броузере отличный от серого цвета
- SSI проверка IP


Оглавление | Обсудить на форуме | Главная страница сайта | Карта сайта |

Контакты
Редакция:
[0.002]