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

Автор Elena Batratskaya
Веб-разработка на Java. Spring Unit Testing. Mockito.

Всем привет на этом уроке мы крутим unit-тесты к нашему Spring приложение я уже добавил необходимые зависимости pom файл — это Spring Test той же верхний, что есть в зависимости от стрингов этот же Unit 5 — это свежая версия раньше был 4 теперь 5 там изменён синтаксис.

Но если кто-то знакомств четвёртом кто будет в общем-то понятно и Makita библиотека для создания мокапов успехов и так хотим подключить junit Test, но я не даст — это базовая теста тестирование самых базовых и маленьких компактных. функциональности и мне показалось интересным написать Unit test для метода вылетает нашего юзер валидатором. В чём суть то есть проверить, что если пользователь с таким именем уже существует то, тогда мы должны чертить этого юзера и должны вызывать метод у объекта Error.

Вот, а если пользователь с таким именем не существует то мы принимаем валидация проходит успешно и мы не вызываем.

Я таджик или уирс теперь. Давайте напишем эти тесты вообще вот этой попутчики до этого не было. То есть об общественно создается на том же уровне. Штейн Папочка моим собственным тест на этом же уровне в ней также. Папочка Java как и здесь и дальше рожки название пакета такая же как и куда мы в принципе то есть полностью такая же иерархия внутри как ее внутри пачки мои и. Давайте создадим соответственно пакет утиль в котором будет Class User validation Test тесты для класса электролитов так сначала не класс. А пакет фильм и здесь User блюдо. Тартар рецепт отлично. У вас с тестом прежде всего. Нам нужно поставить extend with — это как раз будет в четвёртом Unity только здесь теперь extend with указывают спинка старшим, но просто расширение которое будет использоваться для запуска тестов — это у нас — это говоришь или. Теперь какие есть подходы написано.. Как написать отменить с одной стороны можно было бы сделать с этого специально тестовой базы который был бы там перед тестом положительным. То есть как бы перед тестом который должен был бы проверять, что если пользователь с таким именем в базе нет, тогда валидация проходит успешно. Нам нужен был бы сделать цветобаза соответственно без пользователь с таким был на если мы хотели наоборот сделать тестом, что пользователь с таким объемом есть-то validation failed, тогда нам нужно было сделать для этого тестер подготовить базу в которой был бы пользователь с таким именем. Ну вот чтобы абстрагироваться от этого и не тратить на — это время на создание базы средств на территории сервисы чтобы они не ходили прямо настоящую базу мы можем просто плакать User Service который используется в редакторе замок — это есть создать базовый реализацию этого интерфейса там специалистом девчонками какими-то возвращаемым значением рядом просто лист. Ничего здесь не тот который ничего не будет делать то есть такой доску как чучело. Да мог и пустышку и соответственно мы можем могут указывать при вызове определенных методов. Как он себя должен вести то есть такая как-бы действительно как-то, что мы ему говорим то он увидел — это вот и использовать эти mocker вместо того чтобы там настраивать базу специально для каждого этапа и соответственно все объекты которые будут методом который мы будем паковать его нет с нами. Мы тоже будем маршировать соответственно. Давайте напишем так как мы в чём особенность написания тестов в приложении то есть мы можем написать здесь свою конфигурацию тест так как нам нужен User валидатор не тот который сюр сервисом нормальным и правильным за инжектор. До связи с сервисом она нам нужен User validation замок инвертированном нам нужна вообще создать отдельную конфигурацию для тестов то есть так как здесь есть config да. В основном приложение с конфигом там контекстов на глубинах и так далее мы здесь создадим такой же папку config и напишем конфликт только тестовый затем класс пока у нас один будет на. ТНТ config аннотация configuration и нам нужно по сути сделать дроби на первый урок валидатор, но он будет прям правильные и нормально то есть User это. Бим Венгер validator. Да и нужно объявить ещё один. Бим который будет авторесивер валидатор — это вот ездил сервис User сервис, но будем возвращать не юзер сервис Apple. Да, а будем мы возвращать вместо этого мог то есть мы вернем мог. Да из библиотеки Makita мог юит-сервиса. Передаем интерфейс. То есть как я говорил создастся пустышка реализация этого интерфейса которую мы будем настраивать как хотим соответственно мы конфиге сделаем у нас получится. В итоге длину валидатор с за который заставляет окна User Service, что мы хотим. И нам нужно теперь эту конфигурацию подключить вот к этому тесту context configuration classes здесь у нас используются тест класс и. Лаггер annotation context Loader. А так то есть мы exist.ru подключаем свою специально тестовая конфигурация которых мы будем использовать соответственно в самом. ТСТ мы повторим Twitter validator мы говорим он здесь давайте сделаем. Какой раздел мог. Степан dependencies и завтра пойдём сюда замок не отвечай обратить внимание он ведёт нас именно вот в этот вечер сервис замок и они вот-вот config то есть абсолютно 2 2 2 разных изолированных конфига такси. Сервис, что нам ещё понадобится так про конфетку можно забыть нам нужен нам нужно замок от юзера который передаёт с немецкого летает и замок объекты которые передаются от 1 до 8 мая у нас будет один и тот же. Давайте создадим константы для email во-первых User email там какой-то и замок мюрю нас оба наших тестовых методов будут использовать одного и того же юзера вот наш.

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

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