Основы Mockito: Метод Mockito.when для определения возвращаемого значения

Поделиться
HTML-код
  • Опубликовано: 12 сен 2024
  • Основы Mockito: Метод Mockito.when для определения возвращаемого значения
    Код доступен тут: github.com/Dmi...
    В видео мы говорим о том, как мы можем указать что возвращает метод в тесте, если обычно эти данные берутся со стороннего сервиса. Или если при создании mock объекта мы не определили значение переменной и хотим получить определенное значение этой самой переменной, вызвав метод
    Для тех кто хочет поддержать канал и стимулировать более частое появление видео:
    TON кошелек ton://transfer/EQDaRh6x4f9zH1pQzt8lhJPE70eltVzYB-phi83BunLg6X2y
    Ethereum кошелек: 0xfb654C91AC122e911db97435d491c3d919F6d8D5
    PayPal: www.paypal.com...
    Группа ВК - rocketjava
    Telegram - t.me/DmitrijsF...
    Мой сайт - dataguru.guide
    Twitter - / dfinaskins
    Linkedin - / dmitrijs-finaskins-a69...

Комментарии • 16

  • @user-lk2if5yz9b
    @user-lk2if5yz9b 2 года назад +10

    Где то Москито, где то Мохито)

  • @ДмитрийБулгаков-ш8х
    @ДмитрийБулгаков-ш8х 2 года назад +6

    Я совсем только начинаю изучать Java, для меня это было полезной информацией, по крайней мере я понял для чего нужны некоторые методы mock и как им вообще пользоваться.. Человек старается для нас, если не можете ничего полезного сказать или не довольны видео, ищите другое видео. Дисклеймер для высокомерных и чрезмерно умных людей, которые любят посрать в комментарии и способны только осуждать, прошу вас захлопнуть варежку и не сбивать настрой на помощь таким тупым как я, но желающим получить новую информацию.

    • @user-dj5rn2tz6q
      @user-dj5rn2tz6q 2 года назад +5

      Если ты только начал изучать Java, то для тебя рановато лезть в интеграционное тестирование, а конкретно знакомиться с фреймворком Mockito. До него нужно освоить синтаксис языка, после Core, разобраться с Annotations и Reflection Api, попробовать Maven и модульное тестирование (JUnit) - минимальный минимум, по моему мнению, чтобы понимать, что же у нас происходит на экране. Mockito в основном используется при тестировании приложений на Spring, а до этого уровня владения языком нужно очень много всего понять и попробовать. Удачи.

  • @ДмитрийБулгаков-ш8х
    @ДмитрийБулгаков-ш8х 2 года назад +2

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

  • @TheVendeetta
    @TheVendeetta Год назад +8

    Примеры не очень удачные, мне кажется, ну и немного запутанно с объяснениями. Суть в том, что мы с помощью Мокито эмитируем работу какого-либо метода (который, например, должен связаться с удаленным сервисом и получить какое-то значение). Так вот, чтобы каждый раз не обращаться реально к этому удаленному сервису (это ведь может быть еще и не доступно), мы просим Мокито сначала создать фейковый объект, а затем сымитировать работу его методов так, как мы этого ожидаем(или же, подставляем любое значение, которое хотим проверить. В тч можем попросить выкинуть исключение). Это позволит нам выполнить тестирование нашей логики (без внешних подключений), использую в том числе метод, который должен обращаться к удаленным сервисам.
    Стоит учесть, что если мы создаем объект с помощью метода mock или аннотации mock, его методы ничего делать не будут. Т.е. если создать фейковый объект ArrayList, например, то в результате вызова метода add с любым параметром, объект в наш лист не добавится.
    Так же объекты можно создавать с помощью метода и аннотации spy. Здесь уже методы будут выполнять свои функции.
    Вообщем, я это понял примерно как-то так)

  • @synarge2027
    @synarge2027 Год назад

    Кратко. Быстро. и самое главное ПОНЯТНО
    Спасибо большое!😊

  • @mitruslatovous6
    @mitruslatovous6 2 года назад +1

    Спасибо! Все понятно объясняешь.

  • @DeShepotye
    @DeShepotye Год назад

    Благодарю. Ваши видео по mockito очень помогли.

  • @kandidat8134
    @kandidat8134 2 года назад +6

    подменяем значение и его же получаем, и что мы тут протестировали?)) там должен быть метод внутри тестируемого метода и вот его возвращаемое значение мы подменяем с помощью when, изолируя метод от внешних зависимостей. что-то такое было сказано вначале, но примеры вообще сути не раскрывают.

    • @plyha07
      @plyha07 2 года назад +1

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

  • @emrahhakan5462
    @emrahhakan5462 6 месяцев назад

    все хорошо спасибо кроме одного. Когда рассказываешь постоянно посторонние звуки, проглатывание, дыхание и т.д. очень сильно отвлекает... 😕

  • @Papont
    @Papont 2 года назад

    не уловил разницы между 2 последними примерами

    • @mitruslatovous6
      @mitruslatovous6 2 года назад

      В первом примере тестируем метод testInt(), во втором метод getOwner(). Для этого мы программируем стабы для ансверсов (там где вэны).

    • @kandidat8134
      @kandidat8134 2 года назад +1

      ее и нет

  • @user-kuzya2023
    @user-kuzya2023 Год назад

    public class Car { public int testInt(int a){
    return a+4; } }
    -----------------------------------------
    public class CarTest {
    @Test
    void remoteServissReturnValue(){
    Car newCar = Mockito.mock(Car.class);
    assertEquals(9, newCar.testInt(5)); // Expected :9 Actual :0 Почему действительный 0?
    when(newCar.testInt(4)).thenReturn(10);
    assertEquals(10, newCar.testInt(4));

  • @ДмитрийБулгаков-ш8х

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