Веб-разработка на Java. Spring Integration Testing.

Автор Nadezhda Belousova
Веб-разработка на Java. Spring Integration Testing.

Всем привет на этом уроке мы научимся писать интеграционные тесты для Spring приложения на прошлом уроке мы научились писать.

Юнит тесты при помощи и. Джульетта Makita для. Спринтера и теперь.

Ну так как.

Юнит тесты — это у нас тесты которая тестирует определенных русские функциональности на определенных уровнях приложения интеграционные тесты следующие уровни тестирования который проверяет сколько все эти компоненты которые мы отдельно по себе сам себя протестировали работают все хорошо все вместе то есть насколько хорошо. Не интегрируется не проверяет работоспособность приложение целиком в нашем случае мы будем проверять работу наших контроллеров то есть мы не будем могут не базу не сервис. Ничего мы будем делать запросы прямо контроллером с которой будут эти сервисы в настоящее телу 3 настоящую базу на. ПК на нашем случае, но пока не будем тестировать iOS Controller потому, что мы не будем заниматься Security и у нас все странички буду доступна всем поэтому здесь нам особенности давать ничего пока она учимся писать базовое тесто как проверять например был redirector или небыло redirect, что передано в модели как заполировать response Body и так далее для этого давайте для контроллера создадим failed Steam Controller Test здесь будут в принципе те же аннотация, что и здесь плюс несколько дополнительных тоже extend with Spring Attention загружаем контекст загружаем конфигурацию до необходимое то есть здесь мы пишем свою свои конфиги у нас нет никаких уроков которые нам надо отдельно настроить здесь мы загружаем настоящую конфигурацию нашего приложения которое состоит из конфигов брат Resistance коры Security и плюс к этому ещё Web config. Вот то есть все наши конфиге. Здесь также добавляем аннотацию configuration и. Дали autoware Web context applicationcontext который нужен нам, что нужно для того чтобы отгрузить контроллеры которым обращаться. И у нас будет такой век мокрым беси через которым собственная будем делать запросы. Канаш его надо проанализировать придётся инициализировать его. Перед каждым тестом потому, что для инициализации используются контекст вот чтобы сделать методы For All он должен быть статика и статического метода мы не можем обращаться к статическим свойством и нашего класса получается мы пишем Public Void set up и нашим меньшим — это делается так мог BC builders вы publications in context set up придаем свой паблик рилейшнз контекст и делаем build и вот мы собрали mvc object о комиссии класса через который мы можем делать запросы к нашим контролером. Давайте протестируем сначала верхом и проверим, что получается переходя по дефолтным дефолтного. Генерала пользователь не отвечает redirect на страничку юзеров с нулевым запрос через вот этот вот объектами и так у нас получается, что Home что-то не retin A redirect to users page Data есть страничка Home не страничка Hander по запросу. Должен ли DirectX 11 и так как делается запрос делает запрос очень простой mvc perform у нас get-запрос надо портить ей клюв аиста. Так давайте лучше, тогда напиши хотя бы что-нибудь request Builder request Builder mvc form Get import Static Method. Да очень много здесь вариантов. А есть какой-нибудь mock mvc request Builder потом вот нашли Method get' потому, что у нас Method Get http Method get' и получаем. Урал — это просто. Слышь ты чего может да. А давайте сюда. Что делаем давайте сделаем ещё and dull и выведем. Выведи мы на детали на экран то есть там будет request response ожидаем следующего умножаем, что будет определённый redirect uri URL redirect URL import Static всё — это импортируйте с блоками Siri зовут matchers. Дарья директор. Уралмаша, что — это будет юрлы насколько я помню do your users и также. Давайте добавим еще статус. То есть — это http status запросов у нас должен быть из вершин. Ну из нутрии XX — это значит код начинающийся на 3 у нас директор или директор сети код начинается на три. То есть, что мы проверяем на уровне и типе статусу, что — это был redirect и на уровне матч. Я тоже проверяем что. Как определить какой именно был redirect URL завод телефон по-моему выкидывают Exception добавила вот так вот и. Давайте запустим и проверим что. Вообще наш сетап всех контекстов этап нашего мой wi-fi работает чтобы делиться можно сделать запрос и провести. Вот такой довольно простенький интеграционный тест отлично то есть у нас тест прошёл успешно вот здесь. Витя подробности запроса то есть мы запросили. Слышь хендлер был моим Controller Home видим, что был реклоузеров код 302 как мы ожидали его directory users всё классно поменяем и что-то из этого например nitrix например просто например. Ок если напишут да то есть обычный какой-то начинающийся на 200 то. Определи должна быть ошибка потому, что у нас именно этот хендлер должен вернуть никак redirect да вот собственно мы и видим, что вот мы видим, что ожидали мы 200 потому, что написали и сок, а на самом деле был 302 так вот и директор. Ну здорово теперь поехали. Ишим следующий тест теперь мы будем проверять вот, что мы будем проверять у нас getmapping здесь — это запрос спасовал мы будем проверять, что запросив спас в игре был определён атомный. Мам мы во-первых будет добавляться определенный текст в атрибут и будет возвращаться определённую views определённым именем. Так давайте во-первых придумаем.

0 комментариев
0

Читайте также