test-tools
56 subscribers
7 photos
28 links
Tools suite to write integration tests in Spring Framework
Инструменты для написания интеграционных тестов в Spring Framework

All questions you can write to me @antkorwin
Если у вас есть вопросы, то не стесняйтесь написать мне @antkorwin
Download Telegram
Написал небольшой пост про скрытую возможность в IntelliJIDEA:

http://antkorwin.com/idea/openfile.html

оказывается, идея фоном стартует веб-вервер, и с его помощью можно переходить в исходники из браузера. Тоесть вы просто кликаете по ссылке и вас редиректит в идею, в нужный вам класс.
This media is not supported in your browser
VIEW IN TELEGRAM
Эта фича уже успела нам пригодиться в парочке внутренних приложений для анализа логов и ошибок.

Теперь в браузере можно не просто смотреть стек-трэйс, но и быстро перейти к исходникам проблемного места.
В новом выпуске подкаста, у нас очень необычная тема и гость - ЗОЖ

[эпизод совсем не технический]
но что-то мне подсказывает, что равнодушных к этой теме будет мало

обсуждали:
- правильное питание и сон

- очень глубоко про онкологические заболевания
(потому что наш гость изучает современные препараты от рака)

- обсудили такую популярную тему как эпидемия вирусов,
(довольно познавательно, можно понять жизненный цикл вируса, как он распространяется и почему от вирусов не помогают обычные лекарства)

https://bitcask.live/2020/03/19/0x07-zog/
Последнее время совсем не успеваю заглянуть в твитер или написать что-то в канал, навалилось очень много работы...

Надо сказать спасибо Всеволоду Брекелову, что с его подачи мы запостили расшифровку доклада про тестирование IoT.

Получилось аж три части, если кто-то хочет вспонить о чем был доклад, или еще лучше - спросить у меня что-то, то не стесняйтесь - приходите в комментарии на хабре, сейчас это стало проще(регистрируешься и пишешь...) Кстати говоря, я долгое время обходил Хабр стороной, предпочитал постить заметки у себя в блоге, но тут послушал Севу и решил поэкспериментировать...
В этом месяце настраивал pipeline для CI/CD новых проектов и решил попробовать GitHub Actions, мне нравится динамика изменений гитхаба, страшно подумать, но похоже Microsoft влияет на них позитивно…

До этого я активно использовал TeamСity и TravisCI, и там и там есть свои плюсы и минусы, но сегодня говорим про GitHub Actions. По моему мнению, самая главная фича гитхаба - это сам гитхаб. Мало кто может похвастаться таким комьюнити, а возможность держать свой код, CI/CD конвейер и бинарные артефакты в одном месте делает его довольно самодостаточным инструментом. Прибавьте к этому простоту распространения своих экшенов и возможность в один клик найти исходники того, что подключаете в скрипт сборки.

Не хватает только инструментов разработки, ну и отладка своих pipeline-ов пока что - занятие не самое простое.
Для тех, кто хочет технических деталей, я написал статью со всеми этапами построения пайплайна: от сборки до мониторинга. Конечно, там есть про тестирование и статический анализ:

https://habr.com/ru/company/jugru/blog/505994/
Сегодня выступал на конференции heisenbug, в онлайне. Я готовил материал, ещё до того как все тотально перешло в онлайн. И честно говоря, было довольно сложно придумать, что делать, чтобы выступление не стало скучным вебинаром.
🥱😴🥱

Выступать перед экраном сложно, даже именитые спикеры не всегда справляются с этим: над твоей шуткой никто не посмеётся, зал не захлопает, когда будет подгорать, зрительного контакта нет...
🤐😶😷

Но сегодня было весело не только в части того как построить интерактив в докладе, а ещё пару сюрпризов преподнёс онлайн.
Мой топ того, что пошло не так:

1. за десять минут до начала эфира соседи начинают сверлить стены, хотя я специально договорился с ними, чтобы они отложили свой перфоратор себе в ...🤬... хотя бы на пару часов, но нет же

2. Дальше ещё веселее, буквально за пять минут до эфира у нас прорвало трубу на кухне, хорошо что это только слив посудомойки, но вот ни раньше, ни позже...🔧💦

3. Когда после этого в эфире начались какие-то проблемы со звуком, меня это уже не сильно тревожило 🤪🎙🎚

Так что да, онлайн это весело!

🎉🎉🎉
Ребята из jugru большие молодцы, несмотря на все сложности мы смогли успешно провести свой трэк...
Чуть позже закину сюда все полезняшки и ссылки на примеры с кодом,
stay tuned...
Forwarded from Anatoliy Korovin
HEISENBUG

Очень насыщенная неделя получилась, надеюсь вам тоже понравилось на Heisenbug =)
Собрал полезные материалы, как и обещал:

⚠️ Приложение с примерами из доклада:⚠️
https://github.com/antkorwin/heisenbug_2020_demo

Библиотеки для работы с postgresql / mysql/ rabbitmq / activemq ..
https://github.com/jupiter-tools/spring-boot-extensions

Клевая штука для тестирования данных в mongodb:
https://github.com/jupiter-tools/spring-test-mongo

Еще библиотеки для того чтобы стартовать нужный контейнер в докере одной аннотацией:

- Kafka:
https://github.com/jupiter-tools/spring-test-kafka

- Redis:
https://github.com/jupiter-tools/spring-test-redis

- ElasticSearch:
https://github.com/jupiter-tools/spring-test-elasticsearch
Добавил в библиотеку для тестирования Kafka поддержку удобной работы с дата-сэтами. Теперь можно описать JSON файлом то, что ждем после выполенения тестового кейса в Kafka топике.

https://github.com/jupiter-tools/spring-test-kafka#a-better-way-to-test-your-data-in-integration-tests
Вот так это выглядит в тестах
Еще появилась возможность одной аннотацией проверить, что в результате выполнения теста ничего не прилетело в топик, иногда бывает полезно проверить что код не шлет что-то лишнее…
На прошлой неделе попался реальный пример, когда пригодилось использование фантомных ссылок в java.

Решил написать небольшую заметку об этом:
http://antkorwin.com/gc/autodeletable_temp_files_in_java.html
Сегодня открыли сезон heisenbug-show, вышли в эфир jvm-ной командой. Обсуждали junit5, зачем оно нужно, как мигрировать если ещё не успели, всегда ли полезна параметризация тестов, и многое другое...

Посмотреть можно тут:
https://www.youtube.com/watch?v=w1ey2zjf3-s

Пока собирали материал к эфиру, перерыли кучу анти-паттернов из личных коллекций и всем известных open source проектов, которые даже страшно показывать ;) как обычно, за кадром осталось много всего, думаю нужно будет делать продолжение...
В spring-test-mongo появилась поддержка транзакций
🎉🎉🎉
https://github.com/jupiter-tools/spring-test-mongo/releases/tag/v0.15

конечно надо было начать с того что в mongodb появилась поддержка транзакций =)

Для этого нужно использовать репликацию (replica set) пусть даже в single-node реплике. Вся магия транзакций в монге построена на этом.

Как результат мы получаем возможность делать транзакционно изменение сразу нескольких документов. Примеры можно посмотреть тут: https://www.baeldung.com/spring-data-mongodb-transactions

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

О том как работают транзакции в монге: https://docs.mongodb.com/master/core/transactions/

Ну и конечно, чтобы все это удобно работало в спринге уже все сделали: https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#mongo.transactions.tx-manager