14.7. А что же дальше?
Rails способна работать не только с браузерами. Глава 24, «Action Mai показывает, как в Rails-приложениях посылать и получать электронную п а глава 25, «Веб-службы Rails», рассказывает о том, как можно разрешить гим получение программного доступа к вашему приложению с использов" SOAP и XML-RPC.
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 же, будут работать и в комплексных тестах. Тем не менее осторожне помешает, поскольку многие вспомогательные методы имеют незначиле различия.
13.4. Комплексное тестирование приложений
Следующий уровень тестирования должен касаться технологических процессов, ротекающих в нашем приложении. Во многом это подобно тестированию одного ю сценариев, предоставленных заказчиком в начале создания программного кода приложения.
Дополнительные утверждения
Наращу с assert_select Rails предоставляет похожие утверждения, основанне на применении селекторов, для проверки HTML-содержимого, связанного сfjs-обновлениями и операциями вставки (assert_select_r j s), с закодирован-ш HTML в XML-ответе (assert_selected_encoded) и с HTML-основой сообгний электронной почты (assert_select_emai 1). Подробности можно найти Rails-документации.