12 інструментів для інтеграційних і unit-тестів у Java


Дізнайтесь більше про нові кар'єрні можливості в EchoUA. Цікаві проекти, ринкова оплата, гарний колектив. Надсилайте резюме та приєднуйтеся до нас.

Я вважаю, що розробка ПЗ – це щось більше, ніж робота. Я бачу себе ремісником, який щодня вдосконалює свою майстерність. Найпростіший шлях до цього – знайти декілька якісних інструментів і відповісти на запитання:

  • Коли я повинен використати інструмент X?
  • Як я повинен використати інструмент X?

Автоматизоване тестування – дуже важлива частина розробки ПЗ, але в блогах програмістів небагато постів про використовувані інструменти. Ця стаття дозволить Вам зазирнути до мого “ящика з інструментами”. Я розповім про 12 бібліотек і фреймворків, які використовую для написання unit- та інтеграційних тестів, а також надам посилання на сторінки, які допоможуть Вам зрозуміти, як їх використати.

 

Зазирнемо до мого ящика з інструментами

До того як Ви зможете використати описані нижче інструменти, необхідно налаштувати складання, яке автоматично запускає інтеграційні та unit-тести. У мене є 2 замітки за цією темою:

Тепер Ви готові роздивитись мої інструменти ближче. Я поділив їх на категорії, щоб Вам було простіше орієнтуватися.

Отже, є 12 інструментів, які я використовую при інтеграційному та unit-тестуванні.

Запуск тестів

JUnit – це фреймворк, який я використовую як для unit-, так і для інтеграційних тестів. Мені він дуже подобається, оскільки найпопулярніший, тому має багато розширень. Також, якщо у Вас виникнуть проблеми, то розвязати їх буде нескладно.

NestedRunner – розширення для JUnit, яке дозволяє запускати тестові методи із вкладених класів. Мені подобається NestedRunner через низку причин:

  • можна замінити довгі імена методів на ієрархію класів у стилі BDD;
  • можна позбутися дублюючого коду шляхом переміщення його в установні методи в потрібних вкладених класах;
  • можна оголосити константи у вкладених класах і зв’язати їх з тестами, яким ці константи потрібні.

junit – davaprovider – розширення для JUnit, що дозволяє писати параметризовані тести з використанням TestNG як провайдера даних. Це велике поліпшення порівняно зі звичайним способом написання параметризованих тестів.

Додатково:

Макети, заглушки, підміни

Mockito – найпопулярніший фреймворк із підтримкою макетування для unit-тестів. Мені він подобається через простий API, багато корисних можливостей і чудову документацію.

Greenmail – сервер електронної пошти, який підтримує SMTP, POP3 і IMAP з підтримкою SSL-з’єднання. Він мені подобається через простоту використання. Коли я шукав налагоджувальний сервер електронної пошти, переглянувши декілька альтернатив, зупинився на Greenmail, оскільки він працював саме так, як мені було потрібно.

MockFtpServer – бібліотека, яка надає дві різні реалізації FTP-сервера (“заглушка” і ” обманка”), які можна використати для тестування різних сценаріїв. Якщо Вам треба протестувати код, що взаємодіє з FTP- сервером, наш вибір – MockFtpServer.

Додатково:

Твердження

Hamcrest надає інструменти для написання тверджень (assertions) для unit- та інтеграційних тестів. Я його використовую разом зі Spring MVC Test Framework.

AssertJ надає гнучкий API для написання тверджень з корисними повідомленнями про помилки, покращує читаність тестового коду, дозволяє перетворити тести на виконувані специфікації, які дотримуються потрібної предметно-орієнтованої мови.

Додатково:

Тестування коду доступу до даних

H2 – швидка БД, корисна для написання інтеграційних тестів, які запускаються на локальній машині розробника.

DbUnit – розширення для JUnit, яке може бути використане для ініціалізації БД у відомий стан перед виконанням кожного інтеграційного теста і заповнення БД потрібними даними. DbUnit має недоліки, але це дуже корисний інструмент, що дозволяє розділити тестові дані й тестовий код.

Додатково:

Тестування Spring додатків

Spring Test – швейцарський ніж для написання автоматизованих тестів. Він надає першокласну підтримку написання unit- та інтеграційних тестів для додатків, які використовують Spring.

Spring Test DbUnit – інтегрує DbUnit у фреймфорк String Test. Якщо Вам треба написати тести доступу до даних для додатка, який використовує Spring і реляційну БД, то Spring Test DbUnit Вам у допомогу.

Додатково:

Переклад статті “12 Tools That I Use for Writing Unit and Integration Tests”

Київ, Харків, Одеса, Дніпро, Запоріжжя, Кривий Ріг, Вінниця, Херсон, Черкаси, Житомир, Хмельницький, Чернівці, Рівне, Івано-Франківськ, Кременчук, Тернопіль, Луцьк, Ужгород, Кам'янець-Подільський, Стрий - за статистикою саме з цих міст програмісти найбільше переїжджають працювати до Львова. А Ви розглядаєте relocate?


Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *