Pull to refresh
13
0
Артур Куприянов @apploid_offical

Computer Science

Send message

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

Reading time7 min
Views7.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() возвращает то, что мы хотим, и это работает!

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

Приятного чтения!
Total votes 16: ↑15 and ↓1+14
Comments4

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

Reading time5 min
Views6.6K

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

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

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

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

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

Читать далее
Total votes 19: ↑15 and ↓4+11
Comments12

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

Reading time20 min
Views18K
Рефлексия в Java — это специальное API из стандартной библиотеки, которая позволяет получить доступ к информации о программе во время выполнения.

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

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

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

Приятного чтения
Total votes 20: ↑20 and ↓0+20
Comments0

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

Reading time18 min
Views12K

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


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


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


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

Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments8

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

Reading time12 min
Views45K
В этой статье мы создадим бота и интегрируем его в группу VK на Python 3.x

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


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

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


Читать дальше →
Total votes 13: ↑10 and ↓3+7
Comments1

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

Reading time6 min
Views197K

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


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

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


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

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


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

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

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

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity