Java for Beginner
675 subscribers
546 photos
155 videos
12 files
838 links
Канал от новичков для новичков!
Изучайте Java вместе с нами!
Здесь мы обмениваемся опытом и постоянно изучаем что-то новое!

Наш YouTube канал - https://www.youtube.com/@Java_Beginner-Dev

Наш канал на RUTube - https://rutube.ru/channel/37896292/
Download Telegram
Друзья!

Вот и наступил 2025 год — новый виток возможностей, достижений и вдохновения!

У нас впереди еще 365 дней для реализации самых смелых надежд и грандиозных планов.
Каждый из нас проходит свой уникальный путь в мире IT, но я очень рад, что именно здесь, в нашем маленьком и дружном сообществе программистов-новичков, мы собрались, чтобы учиться, расти и поддерживать друг друга 🤝.

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

И вообще я уверен, что каждый, кто решил сделать 2025-й годом больших перемен, окончательно и бесповоротно покорит Java и получит заветный оффер на 500к в секунду😂, станет независимым и востребованным специалистом в команде своей мечты! И пусть Ваши цели кажутся амбициозными, верьте: каждое усилие приближает вас к ней.

Желаю всем здоровья, счастья, любви близких и поддержки друзей. Пусть этот год принесет не только профессиональные достижения, но и внутреннюю гармонию. И главное — радуйтесь своим успехам, как большим, так и маленьким!

С Новым Годом!

Пусть 2025 станет временем, когда ваши мечты становятся реальностью, а уверенность в себе помогает двигаться только вперед!
🎉🎄🎊🎁
Channel photo updated
This media is not supported in your browser
VIEW IN TELEGRAM
Так и бывает со всеми мечтами 🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Тяжелые будни девопса 🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
А потом айтишники виноваты во всем 🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Иногда так хочется уехать в никуда... 🚘 😆

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Даже комментариев не надо 😊

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
И попробуй такому в прибавке откажи 😏 💀

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Просто ха-ха 😆

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ой, спалился🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
HTML язык программирования? Жестко 🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Дебаггер дихлофос😂🤪

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ой...😱🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
Channel photo updated
This media is not supported in your browser
VIEW IN TELEGRAM
Кто себя узнал?🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
А платить будут как обычному разрабу😡🧐😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Тестеры, мы Вас уважаем и ценим😂😂😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Ой, как же так?! 😎🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Это мы? 🧐😱🤪😂

С Новым Годом!
🎄🎁
Please open Telegram to view this post
VIEW IN TELEGRAM
Ну что ребят, отдохнули? 😈

Сегодня продолжаем изучение тем по Java! А в воскресение вновь встречаемся)

Пишите в комментариях, если после праздников темы пойдут туго! 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
Аргумент-матчеры и частичное мокирование

Mockito не ограничивается базовыми функциями вроде создания моков или проверки вызовов. Продвинутые возможности библиотеки позволяют обрабатывать сложные сценарии, такие как использование аргумент-матчеров, частичное мокирование и контроль порядка вызовов.

1. Аргумент-матчеры

Аргумент-матчеры позволяют проверять вызовы методов, не завися от конкретных значений параметров. Это полезно, если параметры варьируются или неизвестны заранее.

Использование стандартных матчеров:

any – принимает любое значение:
Mockito.when(mockList.get(anyInt())).thenReturn("Default");
System.out.println(mockList.get(0)); // Выведет: Default
System.out.println(mockList.get(999)); // Выведет: Default


eq – проверяет точное соответствие:

Mockito.when(mockList.get(eq(1))).thenReturn("Specific");
System.out.println(mockList.get(1)); // Выведет: Specific
System.out.println(mockList.get(2)); // Выведет: null


argThat – настраиваемые условия:
Mockito.when(mockList.get(argThat(i -> i % 2 == 0))).thenReturn("Even");
System.out.println(mockList.get(2)); // Выведет: Even
System.out.println(mockList.get(3)); // Выведет: null


2. Частичное мокирование с помощью spy

Иногда требуется протестировать объект, сохранив его реальные методы, но с возможностью переопределения некоторых из них. Для этого используется spy.

Пример использования spy:
List<String> realList = new ArrayList<>();
List<String> spyList = Mockito.spy(realList);

// Переопределяем метод
Mockito.when(spyList.size()).thenReturn(100);

// Реальные методы продолжают работать
spyList.add("Item");
System.out.println(spyList.get(0)); // Выведет: Item
System.out.println(spyList.size()); // Выведет: 100


Важные моменты:

Используйте spy для реальных объектов, если нужна их логика.
Не смешивайте when и doReturn для одного и того же метода у spy (о doReturn поговорим в следующем посте).


Когда использовать эти подходы?

Аргумент-матчеры полезны для методов с динамическими параметрами.
spy – когда объект имеет сложную логику, которую нельзя полностью заменить mock.


Тест с аргумент-матчерами и spy

Допустим, у нас есть сервис:
@Service
public class CalculatorService {
public int add(int a, int b) {
return a + b;
}

public int multiply(int a, int b) {
return a * b;
}
}


Тест с spy:
@ExtendWith(MockitoExtension.class)
public class CalculatorServiceTest {

@Spy
private CalculatorService calculatorService;

@Test
void testPartialMocking() {
// Частично переопределяем метод
Mockito.when(calculatorService.add(anyInt(), eq(0))).thenReturn(0);

// Проверка
Assertions.assertEquals(0, calculatorService.add(10, 0)); // Переопределено
Assertions.assertEquals(30, calculatorService.add(10, 20)); // Реальная логика

// Проверяем другой метод
Assertions.assertEquals(200, calculatorService.multiply(10, 20));
}
}


#Java #Training #Spring #Testing #Mockito #Spy