Как стать автором
Обновить
13
0
Артур Куприянов @apploid_offical

Computer Science

Отправить сообщение

Mockito. Из чего он приготовлен и как его подавать?

Время на прочтение7 мин
Количество просмотров7.7K

Думаю, многим довелось выпить какой-нибудь напиток, который глубоко впился в наши вкусовые рецепторы, что нам хочется пить его каждый день. Так вот для меня таким «напитком» стал Mockito. Один раз написав простенький тест, можно вернуть себе веру в магию. Я всё ещё помню, как удивлялся тому, как он работает.

Чему же я удивился? Например, этому:

private static class Apple {
   private String color;
   public String getName() {return color;}
}

@Test
public void basic() {
   Apple apple = mock(Apple.class);
   when(apple.getName()).thenReturn("Red");
   assertEquals("Red", apple.getName()); // true
}

С точки зрения написания кода, это очень красиво и понятно:

  • Мы создаём экземпляр-заглушку для класса Apple.
  • Затем мы как бы говорим, когда вызывается метод apple.getColor(), то верни «Red».
  • Далее мы просто проверяем действительно ли apple.getColor() возвращает то, что мы хотим, и это работает!

Внимание! Не читайте дальше, если и дальше хотите верить в магию. Дальнейшее содержание статьи отнимет у вас и эту толику детского счастья.

Приятного чтения!
Всего голосов 16: ↑15 и ↓1+14
Комментарии4

Вы часто используете null? А он у нас в спецификации

Время на прочтение5 мин
Количество просмотров6.6K

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

Младшие разработчики даже если не понимают, то обычно следуют "чистому коду" (прочитав книжку Роберта Мартина). Поэтому код с возможностью возникновения NPE стал встречаться реже, хотя, конечно, они есть.

Не хочу сказать, что любое использование null - это плохо, скорее тут можно сказать "семь раз отмерь, один раз отрежь".

Тем не менее, я долгое время не жаловался насчет NPE, даже когда разработчики с языков у которых строгий контроль на эту тему хвастались своим null-safety. Но из-за одного бага я понял, что просто использование null - это не так страшно, даже если вы возвращаете или передаете его. Разумеется, это очень плохо, но есть вещи хуже - null в спецификациях.

Было бы не особо интересно, если рассказ был об одной компании, которая сделала плохую спецификацию. Давайте вместо этого поговорим о более известной спецификации из Java EE - Java Servlet Specification, а конкретно возьмем класс HttpServletRequest и заглянем в метод getCookies()

Читать далее
Всего голосов 19: ↑15 и ↓4+11
Комментарии12

Практическое применение аннотации в Java на примере создания Telegram-бота

Время на прочтение20 мин
Количество просмотров18K
Рефлексия в Java — это специальное API из стандартной библиотеки, которая позволяет получить доступ к информации о программе во время выполнения.

Большинство программ так или иначе пользуются рефлексией в различных его видах, ведь его возможности трудно уместить в одной статье.

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

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

Приятного чтения
Всего голосов 20: ↑20 и ↓0+20
Комментарии0

Hello World из байт-кода для JVM

Время на прочтение18 мин
Количество просмотров12K

Скомпилируем простенькую программу выводящую "Hello World" и пройдемся по его структуре


Не думаю, что статья будет достаточно информативной для тех, кто поверхностно не знает как выглядит байт-код и как с ним работает JVM (например, хотя бы простейшие инструкции (знание об их существовании)).


На самом деле, это не так сложно. Достаточно использовать инструмент javap из JDK и рассмотреть дизассемблированный код.


А мы приступим к разбору самой структуры байт-кода для JVM

Читать дальше →
Всего голосов 30: ↑29 и ↓1+28
Комментарии8

Создание и интегрирование бота VK в группу через VkBotLongPoll [Python]

Время на прочтение12 мин
Количество просмотров45K
В этой статье мы создадим бота и интегрируем его в группу VK на Python 3.x

Для кого эта статья?


Для тех, кто хочет написать простого бота для своего сообщества, умеющего определять команды и выводить соответствующий ответ

Основные стадии


Читать дальше →
Всего голосов 13: ↑10 и ↓3+7
Комментарии1

Создание простого чат-бота в VK на Python 3

Время на прочтение6 мин
Количество просмотров197K

Создание основы для работы бота будет состоять из следующих этапов:


  1. Создание бота в ВК
  2. Генерирование API- ключа
  3. Создание программы бота через LongPoolVK

Для кого эта статья?


Статья рассчитана для начинающих программистов. Метод работы программы очень прост и любой, кто умеет разбираться в синтаксисе Питона и немного знающий ООП сможет его реализовать для своих нужд. Но в принципе даже не зная никаких принципов ООП, думаю можно научиться добавлять простые функции или хотя бы в крайнем случае использовать готовые исходники из GitHub.

Что есть в этой статье?


Создание основы бота. После этого его можно будет запрограммировать как-угодно. Автоматизировать какую-то рутину или использовать как собеседник.

Улучшенная (слегка усложненная версия бота). Я решил сначала представить простой процедурный код бота, а затем слегка усложнить его, добавив функции, значительно улучшающие работу бота.

Добавление функции передачи погоды. Научим бота говорить нам погоду.
Читать дальше →
Всего голосов 6: ↑5 и ↓1+4
Комментарии1

Информация

В рейтинге
Не участвует
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность