Laravel урок #4. Разработка приложения на Laravel. Реализуем неуспешное развитие событий

Автор Lyudmila Yeriomenko
Laravel урок #4. Разработка приложения на Laravel. Реализуем неуспешное развитие событий

Всем привет друзья сегодня продолжим работать над функционалом оставление отзыва о других юзеров и после того как мы успешно реализовали возможность оставлять отзывы об одном человеке то есть грубо говоря мы предусмотрели в случае успешного развития событий когда запрос прошёл успешно и отзыв был оставлен нам нужна также теперь предусмотреть все возможности когда что-то пошло не так давайте с этого начнем первое напишем тест, что не залогинен юзер не может оставлять финдер не так, но для этого.

Давайте скопируй мне мозг выношу успешного тесто возьмём одного юзера возьмём озеро и не залогинен учусь попробуем отправить запрос от лица первое озеро второму озеру мы отправляем какой-то фидбек допустим плохое Feedback и, что мы хотим проверить. Мы хотим проверить, что ответ. Кто пришёл имею status 422 abv401 не авторизован и также мы хотим.

Проверить кое-что у озера которому пытались остановить бег нету никаких.

Беков так наш готов и отдавать ещё пробежимся создали 2 юзеров и кто-то не залогинен 6 может быть даже и тот же самый юзер, но просто он не залогинился попробовала отправить спрос на этот эндпоинт передав корректные параметры. Аиде озеро которым он хочет поставить Feedback рейтинг и его и сообщения и после этого нам нужно удостовериться. Что такое запрос не выполнен потому, что юзер не авторизован мы получим 401 в качестве ответа и мы получим, что количество чеков для этого юзера которому отправлял всё равно нулю выполняем и получаем ошибку мы получаем правильно ошибку, но — это связано с тем, что ларавел в тестовой среде отключена обработка ошибок обработка Exception. У нас есть смотрите тест-кейс родительский класс и в нём в стартапе мы делаем disable Exception handling и, что она делает она заменяет Exception handler своим новым классом просто анонимном классом который, что не обрабатывает. То есть если мы зайдём к сексу финдер в праве ли мы видим, что допустим здесь есть ещё. Родительское Сэндлер который дарит все ошибки. То есть например когда получаем мы ошибка 404 вместо того чтобы увидеть мертвую белый экран серверная ошибка со статусом 404 laravel socialite красивую девушку где говорится о том, что страница не найдена так-то работает автостоп среде у нас — это выключено для того чтобы ошибки не обрабатывались и мы видели их в консоли такие какие они есть. Поэтому, но для этого теста конкретно нам нужно включить обработку ошибок чтобы ловил обработала её как он должен её обрабатывать и отдал нам провели свет поэтому давайте сделаем disable section если я не помню название метода контурная деформация Jackson Angel gt45. Я думаю, что я что-то напоминает, а Sorry We зацепился выезд капюшон то есть они у нас по дефолту отключены из-за этого ты не включаем и опять неправильно писал название is sore Head Link in hfss проходит перейдем к следующему условию например когда о чём мы говорили в прошлом уроке k1news.ru пытается отправить хэтчбек другому играет лица вообще 3 пользователя назовём тест кино на телефон Feedback on behalf of Another User этого нам понадобится как минимум два озера. А точнее даже три. Теперь давайте пошлём запрос. Здесь нам уже — это не нужно мыться. Лайм запрос смотреть онлайн запрос залогиниться от юзера мицелием запрос в качестве человека который отправляет запрос мы говорим, что — это не этот юзер который залогинен. А этот другой вообще 3 человек и. Передаем параметр человека которому хотим оставить также негативный отзыв потому, что — это плохой человек который. Здесь нам надо удостовериться, что статус ответа у нас был дать по данным — это будет не 400 потому, что такая страница существует — это будет не 401 потому, что пользователь авторизован — это будет 422 unprocessable entity. Потому, что потому, что такое запрос не может быть обработан и то же самое надо удостовериться, что количество блоков для 2 use равно AC равняется нулю. Давайте выполним и получаем нашу ошибку — это как раз таки логическая ошибка который нам о том, что наш приложение работает не так как мы от него. Хотим мы ожидаем status 422 получаем 200. Что означает, что этот запрос проходит нам надо — это предотвратить с этим займёмся пойдём User Feedback контроллер и. Здесь прежде чем мы находим озеро которому мы фидбек нам нужно проверить является ли ID пользователя которая нам пришло из адресной строки вот здесь совпадает ли она с айди пользователя который сейчас авторизован давайте сделаем и request User ID не равняется юзер айди айди то мы вернем ответ с ошибкой. ДСП свиспан Drive Error request cannot be completed ты передадим статус статус ответа 422. Давайте ещё раз выполнен и всё проходит. Давайте подумаем, что ещё. Нам нужен. Я думаю, что сейчас у нас есть очень большой кусок лука на самом деле выпускается в нашу приложение — это не то чтобы баг — это пока, что просто ещё не доработал. Подумайте вот о чём в данном в данном контексте вроде бы всё работает и мы можем отправлять фидбэк и мы не можем мне неавторизованные пользователи не могут отличаться от других пользователей не могут, но в чём я вижу проблему. Так — это в том, что сейчас любой пользователь приложение. Может отправить другому пользователю приложения фидбек от себя хотя по логике то, что мы хотим сделать — это то, что Feedback может быть отправлен только в том случае если люди друг с другом гуляли то есть если они не гуляли друг с другом как они могут отправлять фидбэк друг от друга и правильно. А вот и наш тест который обрабатывает успешное развитие событий ничего на этот счёт не предусматривает поэтому давайте сделаем кого, что напишем новый тест и скажем.

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

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