Навигация
Углубленное изучение Rails
14.2. Структура каталогов
Для Rails свойственна вполне определенная рабочая раскладка каталогов, рис. 14.1 показаны каталоги верхнего уровня, создаваемые при запуске кома rails мое_приложение. Посмотрим, что попадает в каждый из каталогов (не ( зательно по порядку).
14.1. Итак, где же все-таки находится Rails?
Такой аспект Rails, как структура ее компонентов, представляет вполне он ленный интерес. С точки зрения разработчика, все его время тратится на рабе с высокоуровневыми модулями вроде Active Record и Action View.
Углубленное изучение Rails
Похоже, после того как мы выдержали разработку проекта Depot, самое врем лубиться в изучение Rails. В оставшейся части книги тема за темой (а во ] модуль за модулем) мы будем изучать Rails.
13.7. Что нам удалось сделать
Мы создали несколько тестов для приложения Depot, но все так и не протестиро¬вали. Тем не менее с полученными на данный момент знаниями мы можем зт» сделать. Rails действительно содержит великолепную поддержку тестирование, помогая создавать по-настоящему хорошие тесты.
Так все-таки заглушки или ложные объекты?
Нетрудно заметить, что в предыдущем разделе для ложных классов и методов < nocks) использовался термин заглушки (stubs), но Rails помещала их в подката--юс test/mocks. Rails развивается слишком стремительно, утрачивая по ходу тер¬минологические тонкости.
13.6. Использование ложных объектов
Рано или поздно к приложению Depot нужно будет добавить код для фактиче¬ского сбора платежей от наших дорогих покупателей.
замеры производительности
нужно лишь замерить производительность конкретного метода (или опе-i), то можно воспользоваться сценариями script/profiler и script/ :Яяагкег, которые Rails предоставляет с каждым проектом. Замерочный сце-га (benchmarker) сообщает о продолжительности работы метода, а аналити-сценарий (profiler) сообщает, на что каждый метод тратит свое время.
13.5. Тестирование производительности
Тестирование не ограничивается проверкой, все ли делается так, как заду Вполне возможно, что нам захочется узнать, достаточно ли быстро это делае Прежде чем углубляться в этот вопрос, следует высказать одно предостережев Многие приложения большую часть времени выполняются вполне приемле и когда они начинают замедлять свою р
Методы, применяемые в комплексных тестах
тестах можно использовать следующие методы. r_redirect!()
Если последний запрос к контроллеру привел к перенаправлению — выпол¬нить его. jpfctpath, params=nil, headers=nil) |ptf(path, params=nil, headers=nil)
Lhttp_request(path, params=nil, headers=nil)
Выполняет запрос GET, POST или XMLHTTP с заданными параметрами.
комбинированных тестов
комплексных и функциональных тестов обманчива, но все те утверия, которые мы использовали в блочном и функциональном тестировании, «io же, будут работать и в комплексных тестах. Тем не менее осторожне помешает, поскольку многие вспомогательные методы имеют незначиле различия.