Тестирование ПО глазами разработчика

แชร์
ฝัง
  • เผยแพร่เมื่อ 19 ธ.ค. 2024

ความคิดเห็น • 111

  • @GreyAbs
    @GreyAbs 8 หลายเดือนก่อน +16

    Евгений талант, который не жалеет своего времени делиться знаниями и опытом, спасибо большое! Жаль что по C# на просторах ютуба нет такого же Евгения(

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Большое спасибо за поддержку!

  • @phaselock-java
    @phaselock-java 8 หลายเดือนก่อน +12

    Это самый лучший канал по Java)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน +1

      Спасибо за поддержку :)

  • @davitkostandyan5103
    @davitkostandyan5103 8 หลายเดือนก่อน +4

    Низкий поклон к твоему труду, спасибо большое, за то, что ты делаешь!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!

  • @user-lk8n0fgjk
    @user-lk8n0fgjk 8 หลายเดือนก่อน +7

    Евгений, дай Бог Вам здоровья, сил и вдохновения на продолжение различных направлений Вашей деятельности на канале (обучающие видео, менторинг, мок-интервью). Качество и подача материала на высоте.
    Ждем следующих видео на Вашем канале!
    Удачи!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Большое спасибо за поддержку!

  • @pelmensmetankovich8902
    @pelmensmetankovich8902 8 หลายเดือนก่อน +4

    Лучший канал по Java! Огромное спасибо, Евгений!!!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!

  • @Devivl
    @Devivl 6 หลายเดือนก่อน +1

    Обалдеть! Вот это курс! Евгений, ты реально меценат. Меценат с большой буквы!
    Огромная благодарность за то делишься экспертизой. Таких людей должно быть больше!
    Жень, от всей души желаю тебе всего самого доброго. Тебе и твоим близким благополучия!
    Еще раз спасибо за потрясающий материал.

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 หลายเดือนก่อน +1

      Большое спасибо за поддержку!

  • @RadioGubitel
    @RadioGubitel 8 หลายเดือนก่อน +3

    В одном видео все, что я не мог найти в разных источниках. 👍И отличная подача.

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน +1

      Большое спасибо за отзыв!

  • @tiy2000
    @tiy2000 8 หลายเดือนก่อน +1

    3:40:52 не понял, зачем в entity сетится email?
    Ведь мы проверяем изменение email, поэтому в сущности должен быть старый email, а в dto - новый.
    Или я чего-то не понимаю?

  • @kensaitakeso
    @kensaitakeso 8 หลายเดือนก่อน +1

    Спасибо, Женя! по качеству этот материал намного превосходит все подобные платные курсы. я бы не пожалел даже купить такое.

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Большое спасибо за поддержку!

  • @ГлебВалерьевич-у6ы
    @ГлебВалерьевич-у6ы 8 หลายเดือนก่อน +1

    Великолепная, монструозная, важнейшая работа! Спасибо, мастер)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Большое спасибо за поддержку!

  • @Dimoniada
    @Dimoniada 8 หลายเดือนก่อน +3

    Это просто бомба, спасибо за знания!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @vladik_vinogradik
    @vladik_vinogradik 8 หลายเดือนก่อน +2

    Евгений, приветствую! При тестировании сервисного слоя ( 1:15:00 и далее ) мы присваиваем методам мока репозитория findByEmail и getById поведение, которым они не обладают и обладать, в моём понимании, не должны - пробрасывание исключений. Не было бы правильнее делать .willReturn(null) ? И уже этот null обрабатывать в методе сервиса и дожидаться проброса исключения там? Просто в моём понимании мы не тестируем функциональность по пробросу исключений в методе сервиса при получении null от репозитория. Надеюсь понятно написал) Для наглядности укажу код :
    Метод из ролика :
    --
    public void givenIncorrectEmail_whenGetDeveloperByEmail_thanExceptionIsThrown() {
    //given
    BDDMockito.given(repository.findByEmail(anyString()))
    .willThrow(DeveloperIsNotExistException.class);
    //when
    assertThrows(DeveloperIsNotExistException.class, ()->
    serviceUnderTest.getDeveloperByEmail(DataUtils.getJohnScottTransient().getEmail()));
    //then
    }
    Мой метод :
    --
    public void givenIncorrectEmail_whenGetDeveloperByEmail_thanExceptionIsThrown() {
    //given
    BDDMockito.given( repository.findByEmail(anyString())) .willReturn(null);
    //when
    assertThrows(DeveloperIsNotExistException.class, ()->
    serviceUnderTest.getDeveloperByEmail(DataUtils.getJohnScottTransient().getEmail()));
    //then
    }

  • @ArthurMorgan_01
    @ArthurMorgan_01 8 หลายเดือนก่อน +1

    Спасибо вам большие гайд! Долг искал норм гайд где бы понять методологию!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @alevadnaya
    @alevadnaya 8 หลายเดือนก่อน +1

    Очень полезное видео и сколько труда вложено, благодарю!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน +1

      Большое спасибо за отзыв!

  • @igorklimov9481
    @igorklimov9481 8 หลายเดือนก่อน +1

    Очень круто - все по тестированию в одном видео! Евгений, спасибо за контент!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @ДневникТаджика-н1г
    @ДневникТаджика-н1г 8 หลายเดือนก่อน +1

    любимый Java разработчик) блогодарья вашему каналу я стану senior)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку и успехов вам!

  • @gogogo2022
    @gogogo2022 8 หลายเดือนก่อน +1

    Спасибо Тебе добрый человек делишься своими трудами!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @АлександрБондарев-ъ7ф
    @АлександрБондарев-ъ7ф 8 หลายเดือนก่อน +1

    Как всегда. Подача материала супер. Спасибо за труд

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!

  • @borlok2
    @borlok2 8 หลายเดือนก่อน +1

    Спасибо, Женя!) Давно уже нужно было это сделать))) Очень полезно)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку, Юра!

  • @zhenyalee2731
    @zhenyalee2731 8 หลายเดือนก่อน +1

    спасибо Евгений за ваш труд
    очень полезно

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @elnar_1206
    @elnar_1206 8 หลายเดือนก่อน +1

    Спасибо Евгений, как всегда отличный материал🔥🔥🔥

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!

  • @igorpavlenkov3658
    @igorpavlenkov3658 8 หลายเดือนก่อน +1

    Евгений, спасибо за отличное видео!)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @murkinkot
    @murkinkot 8 หลายเดือนก่อน +1

    Классный обзор про юнит тесты!!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @Hopkroft
    @Hopkroft 8 หลายเดือนก่อน +1

    Женя, огромное спасибо!
    как раз будет чем вечером заняться :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Большое спасибо за поддержку!

  • @КристинаКирова-и1в
    @КристинаКирова-и1в 28 วันที่ผ่านมา

    Спасибо за видео! В самом начале на 16:37 минуте билд должен запускаться с запущенным докером иначе падает при попытке билда

  • @Илья-ч1х5р
    @Илья-ч1х5р 6 หลายเดือนก่อน

    Спасибо огромное за ваш труд! Прекрасное видео!

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 หลายเดือนก่อน

      Спасибо за отзыв!

  • @karenpetrosian2979
    @karenpetrosian2979 8 หลายเดือนก่อน +3

    Крайне годно, Женя ты лучший !!! :)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв :)

  • @thenightfestival1506
    @thenightfestival1506 8 หลายเดือนก่อน +1

    то что нужно 👍
    Огромное спасибо!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @andarworld8985
    @andarworld8985 6 หลายเดือนก่อน

    Благодарю за ваш труд!

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 หลายเดือนก่อน

      Спасибо за поддержку!

  • @tiy2000
    @tiy2000 8 หลายเดือนก่อน +2

    Отличный курс, спасибо!
    Вопрос: почему кастомные метода репозитория возвращают сущность, а не Optional?

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!
      Фреймворк позволяет возвращать как объект, так и optional.

    • @tiy2000
      @tiy2000 8 หลายเดือนก่อน

      @@EugeneSuleimanov так по best practices вроде лучше возвращать Optional?
      Методы спринговых интерфейсов возвращают или List или Optional)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      @@tiy2000 не встречал такого утверждения, если можете скинуть ссылки, буду признателен.

    • @tiy2000
      @tiy2000 8 หลายเดือนก่อน

      @@EugeneSuleimanov это было не утверждение, а вопрос)

    • @tiy2000
      @tiy2000 8 หลายเดือนก่อน +1

      @@EugeneSuleimanov если в самом спринге везде возвращается optional, то я предполагаю, что это основной кейс. Но бывают случаи, когда удобнее получать реальную сущность. Поэтому такая возможность оставлена для кастомных методов. Но это не основной кейс, как я думаю) Могу ошибаться)
      Другими словами, какой вариант предпочтительнее в таких задачах, типа рассмотренной в видео?

  • @itmaker1821
    @itmaker1821 8 หลายเดือนก่อน +1

    Почти 4 часа - страшно ) Но посмотрю обязательно

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за комментарий!

  • @Dominic_Herzog
    @Dominic_Herzog 4 หลายเดือนก่อน

    Спасибо! Все круто и понятно!)

    • @EugeneSuleimanov
      @EugeneSuleimanov  4 หลายเดือนก่อน +1

      @@Dominic_Herzog спасибо за отзыв!

  • @ercefwxdx
    @ercefwxdx 8 หลายเดือนก่อน +1

    Супер, те що треба!!! Дякую!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน +1

      Спасибо за отзыв!

  • @dmitry_shelemekh
    @dmitry_shelemekh 8 หลายเดือนก่อน +1

    @EugeneSuleimanov 2:51:21 а почему зависимость io.r2dbc:r2dbc-postgresql а не org.postgresql:r2dbc-postgresql ?

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за вопрос. Чаще работаю с ней, поэтому взял эту зависимость.

  • @ivanstrelka3448
    @ivanstrelka3448 8 หลายเดือนก่อน +1

    Женя! Ты топ! Спасибо!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!

  • @XPyCT_HOCKOB
    @XPyCT_HOCKOB 8 หลายเดือนก่อน +1

    ООО шик, я как раз тестировщик 😂

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за комментарий!

  • @user-fz3rk8qv1d
    @user-fz3rk8qv1d 8 หลายเดือนก่อน

    Шеф! Это золото а не курс!

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв :)

  • @dimashtef7077
    @dimashtef7077 8 หลายเดือนก่อน +1

    Почти 4 часа, огонь

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за отзыв!

  • @dmaberlin
    @dmaberlin 6 หลายเดือนก่อน

    Интересно и познавательно =)

    • @EugeneSuleimanov
      @EugeneSuleimanov  6 หลายเดือนก่อน

      Спасибо за поддержку!

  • @nan1896
    @nan1896 8 หลายเดือนก่อน +1

    Спасибо за видео, Евгений! Сталкивались с Citrus Framework? Последнее время всё чаще появляется в инфополе и даже доводилось его попробовать. Было бы интересно посмотреть по нему видео от Вас :) Будет хорошим дополнением к этому видео. Что думаете?

  • @alexpan2463
    @alexpan2463 7 หลายเดือนก่อน +1

    Лайк, подписка!

    • @EugeneSuleimanov
      @EugeneSuleimanov  7 หลายเดือนก่อน

      Спасибо за поддержку!

  • @savaxxxz
    @savaxxxz หลายเดือนก่อน

    Огромное спасибо

    • @EugeneSuleimanov
      @EugeneSuleimanov  หลายเดือนก่อน

      @@savaxxxz спасибо за отзыв!

  • @AlexSmile-y2x
    @AlexSmile-y2x 8 หลายเดือนก่อน +1

    Крутое видео. Просто ТОП, Жень! Как относишься к мнению, что мокать есть смысл только внешние сервисы, которые доступны третьим лицам, в ином случае такие сервисы можно считать внутренними (относительно клиентов и любых третьих лиц)? Например БД, доступную только из нашего сервиса, нет смысла мокать, т.к. для любого внешнего сервиса она является частью нашей внутренней реализации.

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку!
      В целом, согласен, что мокать нужно только то, что крайне и крайне сложность поддерживать или поднимать внутри периметра.

  • @tomvenom
    @tomvenom 8 หลายเดือนก่อน +1

    Привет Евгений. Спасибо за видео. Хотел бы спросить, работали ли Вы с C#/.Net стеком? Если да, то насколько много преимуществ он имеет по сравнению с Java платформой?

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за комментарий!
      К сожалению, нет такого опыта и не смогу подсказать по преимуществам и недостаткам.

  • @crazym8nd
    @crazym8nd 8 หลายเดือนก่อน +1

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

  • @user-007-1
    @user-007-1 8 หลายเดือนก่อน +1

    Евгений, а есть смысл изучать реактивность после выхода 21й джавы с её виртуальными потоками?
    Вообще, есть ли нормальное сравнение быстродействия этих двух технологий в проме?

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за комментарий!
      Это несколько разные подходы и я бы рекомендовал ознакомиться с ними отдельно.

    • @user-007-1
      @user-007-1 8 หลายเดือนก่อน

      @@EugeneSuleimanov да, я работал немного с реактивностью в спринговом гейтвее, но уже года 2 назад говорили, что не стоит в неё закапываться, ведь скоро выйдут виртуальные потоки. Сейчас частый случай, что переходят на 21ю джаву, вот я так и не понимаю - будут ли писать новые реактивные проекты, или максимум поддерживать имеющиеся

  • @dmitry_shelemekh
    @dmitry_shelemekh 8 หลายเดือนก่อน +1

    А вот я так понял делейт сделен не идемпотентным для примера просто? Показать работу эксепшнов, да?

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за вопрос!
      Да, все верно, акцент на тестировании.

    • @dmitry_shelemekh
      @dmitry_shelemekh 8 หลายเดือนก่อน

      ​@@EugeneSuleimanov спасибо

  • @MadMax-mz5zu
    @MadMax-mz5zu 8 หลายเดือนก่อน +1

    👍👍

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за комментарий!

  • @Daniel-mo1iy
    @Daniel-mo1iy 4 หลายเดือนก่อน

    спасибо! подскажите, а действительно нужно тестировать базовые методы типа save, findAll или saveAll? это было показано для примера, разве в реальном коде не тестируют только какую то кастомную логику, кастомные запросы?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 หลายเดือนก่อน +1

      @@Daniel-mo1iy спасибо за комментарий!
      Обычно, не тестируются, здесь показаны просто примеры работы с тестами.

    • @Daniel-mo1iy
      @Daniel-mo1iy 3 หลายเดือนก่อน

      @@EugeneSuleimanov спасибо за ответ! подскажите еще пжлст, а можно проверять конкретно sql запросы при тестировании repository? например, проверить отсутствие проблемы N+1, или хибернейт может разные алиасы каждый раз делать и такое невозможно протестить?

  • @atom8835
    @atom8835 5 หลายเดือนก่อน

    Изучаю сейчас Junit и столкнулся с проблемой: как тестировать контроллеры , которые защищены с помощью Spring security ? Если кто-то может помочь, буду очень признателен

  • @ShintilesBayzakov
    @ShintilesBayzakov 3 หลายเดือนก่อน

    Большое спасибо! Но у меня при update срабатывает как insert новая запись. Не подскажите почему так?

    • @EugeneSuleimanov
      @EugeneSuleimanov  3 หลายเดือนก่อน

      @@ShintilesBayzakov спасибо аза отзыв!
      Имеет смысл проверит реализацию метода isNew в классе сущности. Обычно, причина именно в этом.

    • @ShintilesBayzakov
      @ShintilesBayzakov 3 หลายเดือนก่อน

      @@EugeneSuleimanov спасибо) но я не понял) можно пример, если не трудно, прошу прощения!

  • @МаксимЖивотовский-ц8о
    @МаксимЖивотовский-ц8о 8 หลายเดือนก่อน +1

    +

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน +1

      Спасибо за комментарий!

  • @arturfrimu4161
    @arturfrimu4161 8 หลายเดือนก่อน +1

    Это самый лучший канал по Java)

    • @EugeneSuleimanov
      @EugeneSuleimanov  8 หลายเดือนก่อน

      Спасибо за поддержку :)