селекторные утверждения
только assert_select выберет ряд узлов и успешно проведет какие-нибудь *, связанные с этими узлами, может возникнуть желание провести дополниешные тесты с этим же набором узлов. Например, в начале этого раздела мы рЕсматривали тест, проверяющий наличие на странице тега с идентифи-ягором (id) cart.
Утверждения, предназначенные для тестирования ответов
Утверждение assert_select может использоваться в функциональных и плексных тестах. В своем простейшем виде оно использует селектор. Утвер ние считается состоятельным, если хотя бы один узел ответа будет выбран сет тором, и несостоятельным — при отсутствии таких узлов.
assert_select "title" # содержится ли в нашем ответе тег
Составные селекторы
получить составной селектор, нужно выстроить комбинацию из несколь-простых селекторов. Составной селектор позволяет дать описание взаимо¬элементов. В приведенных далее описаниях сел_1, сеп_2 и т. д. представ-простые селекторы. _1 сел_2 ...
Простые селекторы
Простой селектор состоит из необязательного селектора типа, следующего любым количеством селекторов класса, id-селекторов, селекторов атрибутов i псевдоклассов.
Селектор типа — это просто название тега в вашем документе.
Селекторы
Селекторы имеют довольно непростой синтаксис — возможно, он даже слоя чем у регулярных выражений. Тем не менее его схожесть с селекторным сю сисом CSS означает возможность отыскать множество примеров в Интернете, i скольку предлагаемая далее краткая сводка подает материал в слишком ном виде.
Помощники функционального тестирования
Rails предоставляет для функционального тестирования следующие вспомс
тельные методы.
find_tag(ycnoBMfl)
Выискивает в ответах определенный тег, используя те же условия, что и верждение assert_tag.
tag = find_tag :tag => "form" ,
attributes => { -.action => "/store/add_to_cart/993" } assert_equal "post" , tag.attributes["method" ]
Переменные
После того как запрос будет выполнен, в функциональные тесты могут внос» утверждения, использующие значения следующих переменных: assigns(key=nil)
Переменные экземпляра, которые были определены в последнем действни.
assert_not_ni1 assigns["iterns"]
Утверждения
Вдобавок к стандартным утверждениям, перечисленным ранее в поздразд «Поддержка блочного тестирования», после выполнения запроса в функцион ных тестах доступны следующие утверждения:Сравнение двух строк, содержащих HTML, проходит успешно, если обе они являются (не являются) представителями одной и той же объектной модели доку
Методы HTTP-запросов
Методы get, post, put, delete и head используются для симуляции вхо HTTP-запросов с теми же именами. Они вызывают заданные действия и де; ответ доступным для тестового кода. Каждый из этих методов воспринимает ни и те же четыре параметра. К примеру, взглянем на метод get: де1(действие, параметры = nil, сессия = nil, флэш = nil)
Соглашения, касающиеся функционального тестирования
Мы провели блицтур по созданию функциональных тестов для контроллеров. По ходу действия использовался ряд вспомогательных методов и утверждений, включенный в Rails с целью облегчить вашу жизнь при создании тестов.