Бібліотеки для тестування
Бібліотеки для тестування — це спеціальні інструменти, що допомагають у процесі тестування. Звичайно можна написати власну бібліотеку запуску своїх тестів, але на даний час співтовариство вже виконало величезний обсяг роботи та розробило величезну кількість інструментів для тестування, тому простіше буде використовувати їх.
Технологічний стек для модульного тестування
Runner, Reporter
Необхідні для виконання тестів. Модульний тест це звичайний JavaScript файл, але щоб скористатися доданими функціями виконавців тестів, наприклад запускати кілька тестів за раз, повідомляти про помилки або успішне завершення нам потрібний виконавець тестів. Ми будемо використовувати Jest, але є альтернативи Mocha та Jasmine або Ava.
SPY, Mock
При написанні тестів ми уникаємо їхнього зв'язування з іншими частинами інфраструктури нашої програми. Таким чином інші не тестовані функції повинні бути замінені «підробленою» функцією, яка веде себе так, як від неї очікують, та тут нам на допомогу прийдуть стаби (stubs) та моки (mock) Різниця в термінах у тому, що стаб нічого не перевіряє, а лише імітує заданий стан, а мок – це об'єкт, який має очікування. Наприклад, що тестована функція має бути викликана кілька разів. Для тестування stubs та mock ми використовуємо Jest, але є й інші бібліотеки Sinon та Testdouble.
Matchers
Бібліотеки для суджень на кшталт - a більше b?. Вже створено безліч рішень, які полегшують написання твердження для наших тестів. Jest поставляється зі вбудованими методами твердження. Альтернативні популярні рішення Chai та Shouldjs.
Coverage
Покриття тестами. Є способи визначення того, які частини нашої програми вкриті тестами. Це показник, який є орієнтиром при визначенні того, наскільки добре протестовано наш код. Jest використовує популярний інструмент під назвою Istanbul.
На сьогоднішній день доступна ціла маса фреймворків для модульного тестування. Як бачимо бібліотека Jest покриє будь-яке завдання, яке може виникнути при тестуванні нашої програми.