Я совсем только начинаю изучать Java, для меня это было полезной информацией, по крайней мере я понял для чего нужны некоторые методы mock и как им вообще пользоваться.. Человек старается для нас, если не можете ничего полезного сказать или не довольны видео, ищите другое видео. Дисклеймер для высокомерных и чрезмерно умных людей, которые любят посрать в комментарии и способны только осуждать, прошу вас захлопнуть варежку и не сбивать настрой на помощь таким тупым как я, но желающим получить новую информацию.
Если ты только начал изучать Java, то для тебя рановато лезть в интеграционное тестирование, а конкретно знакомиться с фреймворком Mockito. До него нужно освоить синтаксис языка, после Core, разобраться с Annotations и Reflection Api, попробовать Maven и модульное тестирование (JUnit) - минимальный минимум, по моему мнению, чтобы понимать, что же у нас происходит на экране. Mockito в основном используется при тестировании приложений на Spring, а до этого уровня владения языком нужно очень много всего понять и попробовать. Удачи.
Примеры не очень удачные, мне кажется, ну и немного запутанно с объяснениями. Суть в том, что мы с помощью Мокито эмитируем работу какого-либо метода (который, например, должен связаться с удаленным сервисом и получить какое-то значение). Так вот, чтобы каждый раз не обращаться реально к этому удаленному сервису (это ведь может быть еще и не доступно), мы просим Мокито сначала создать фейковый объект, а затем сымитировать работу его методов так, как мы этого ожидаем(или же, подставляем любое значение, которое хотим проверить. В тч можем попросить выкинуть исключение). Это позволит нам выполнить тестирование нашей логики (без внешних подключений), использую в том числе метод, который должен обращаться к удаленным сервисам. Стоит учесть, что если мы создаем объект с помощью метода mock или аннотации mock, его методы ничего делать не будут. Т.е. если создать фейковый объект ArrayList, например, то в результате вызова метода add с любым параметром, объект в наш лист не добавится. Так же объекты можно создавать с помощью метода и аннотации spy. Здесь уже методы будут выполнять свои функции. Вообщем, я это понял примерно как-то так)
подменяем значение и его же получаем, и что мы тут протестировали?)) там должен быть метод внутри тестируемого метода и вот его возвращаемое значение мы подменяем с помощью when, изолируя метод от внешних зависимостей. что-то такое было сказано вначале, но примеры вообще сути не раскрывают.
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));
Огромное спасибо!
Где то Москито, где то Мохито)
Я совсем только начинаю изучать Java, для меня это было полезной информацией, по крайней мере я понял для чего нужны некоторые методы mock и как им вообще пользоваться.. Человек старается для нас, если не можете ничего полезного сказать или не довольны видео, ищите другое видео. Дисклеймер для высокомерных и чрезмерно умных людей, которые любят посрать в комментарии и способны только осуждать, прошу вас захлопнуть варежку и не сбивать настрой на помощь таким тупым как я, но желающим получить новую информацию.
Если ты только начал изучать Java, то для тебя рановато лезть в интеграционное тестирование, а конкретно знакомиться с фреймворком Mockito. До него нужно освоить синтаксис языка, после Core, разобраться с Annotations и Reflection Api, попробовать Maven и модульное тестирование (JUnit) - минимальный минимум, по моему мнению, чтобы понимать, что же у нас происходит на экране. Mockito в основном используется при тестировании приложений на Spring, а до этого уровня владения языком нужно очень много всего понять и попробовать. Удачи.
Автор ролика, спасибо за видео, для меня это отличная информация. Прошу, не прекращай снимать подобные видео.
Благодарю. Ваши видео по mockito очень помогли.
Спасибо! Все понятно объясняешь.
Примеры не очень удачные, мне кажется, ну и немного запутанно с объяснениями. Суть в том, что мы с помощью Мокито эмитируем работу какого-либо метода (который, например, должен связаться с удаленным сервисом и получить какое-то значение). Так вот, чтобы каждый раз не обращаться реально к этому удаленному сервису (это ведь может быть еще и не доступно), мы просим Мокито сначала создать фейковый объект, а затем сымитировать работу его методов так, как мы этого ожидаем(или же, подставляем любое значение, которое хотим проверить. В тч можем попросить выкинуть исключение). Это позволит нам выполнить тестирование нашей логики (без внешних подключений), использую в том числе метод, который должен обращаться к удаленным сервисам.
Стоит учесть, что если мы создаем объект с помощью метода mock или аннотации mock, его методы ничего делать не будут. Т.е. если создать фейковый объект ArrayList, например, то в результате вызова метода add с любым параметром, объект в наш лист не добавится.
Так же объекты можно создавать с помощью метода и аннотации spy. Здесь уже методы будут выполнять свои функции.
Вообщем, я это понял примерно как-то так)
Кратко. Быстро. и самое главное ПОНЯТНО
Спасибо большое!😊
подменяем значение и его же получаем, и что мы тут протестировали?)) там должен быть метод внутри тестируемого метода и вот его возвращаемое значение мы подменяем с помощью when, изолируя метод от внешних зависимостей. что-то такое было сказано вначале, но примеры вообще сути не раскрывают.
Согласен, так никто не тестирует, по сути такие тесты буду проходить всегда, даже если метод давно сломался ..)
не уловил разницы между 2 последними примерами
В первом примере тестируем метод testInt(), во втором метод getOwner(). Для этого мы программируем стабы для ансверсов (там где вэны).
ее и нет
все хорошо спасибо кроме одного. Когда рассказываешь постоянно посторонние звуки, проглатывание, дыхание и т.д. очень сильно отвлекает... 😕
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));
Автор ролика, спасибо за видео, для меня это отличная информация. Прошу, не прекращай снимать подобные видео.