Написання модульних та інтеграційних тестів – один із найчастіше зневажених аспектів розробки програмного забезпечення. Занадто часто розробники кажуть “але у мене на комп’ютері працює!” коли проект вважається завершеним, тільки щоб виявити, що коли він виходить із середовища розробки, речі не працюють так, як очікувалося. Добре написані модульні та інтеграційні тести допомагають вирішити цю проблему та практично завжди скорочують загальний час розробки, а не збільшують його.
Курс зосереджений на написанні модульних та інтеграційних тестів мовою Go (Golang), сучасною, типобезпечною, скомпільованою та надзвичайно швидкою мовою програмування. Він ідеально підходить для створення безпечних, масштабованих, неймовірно швидких веб-застосунків і має потужні інструменти тестування, вбудовані прямо в нього.
У цьому курсі ми створимо чотири простих програми і ретельно протестуємо їх:
Консольна програма (CLI), яка намагається визначити, чи є введене користувачем число простим чи ні;
Проста веб-додаток, яка дозволяє користувачеві увійти до системи та завантажити фотографію профілю;
Простий REST API, побудований на тій же кодовій базі, що і веб-додаток, який дозволяє користувачам автентифікуватися за допомогою JWT-токенів та виконувати операції з базою даних Postgres. Ми розглянемо весь процес автентифікації, включаючи використання токенів оновлення, та ретельно протестуємо всі аспекти коду.
Просте веб-додаток з однією сторінкою (SPA), написане на Vanilla JavaScript, демонструє, як використовувати JWT і Refresh Tokens в SPA і як протестувати його функціональність.
Для кожного з цих проектів ми вивчимо, як писати модульні випробування для всієї функціональності. Ми дізнаємося, як тестувати (серед іншого):
Маршрути програми
Обробники додатків
Як тестувати кілька сценаріїв, шляхом написання та використання тестових таблиць
Операції з базами даних (використовуючи шаблон Repository)
Проміжне програмне забезпечення програми
Аутентифікація користувача (за допомогою сесій)
Аутентифікація користувача (за допомогою JWT-токенів)
Генерація та перевірка JWT-токенів
Генерація та перевірка токенів оновлення
Тестування введення користувача
Запис до терміналу
Додавання файлів cookie до запиту
Читання файлів cookie з відповіді
Після закінчення курсу ви отримаєте тверде розуміння того, як писати ефективні тести та тестований код.