Понять, что такое тестирование и как оно проводится

Модульный тест:

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

Интеграционный тест:

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

Крючки:

Хуки - это функции, которые вызываются автоматически в течение жизненного цикла теста при его запуске. В разных фреймворках эти хуки могут называться по-разному, но в основном все они сводятся к одной и той же концепции. Я использовал mocha в качестве тестового раннера:

1. before(): работает как прежде, чем все происходит, инициализирует глобальные настройки, очищает БД, вызывает фикстуры здесь.

2. beforeEach(): работает так же, как перед каждым запуском тестовых образцов, очищает таблицы, настраивает определенные условия для тестирования на этом.

в одном тестовом файле может быть внутренний before() или beforeEach () для управления отдельными уровнями подготовки сценария к выполнению теста.

3. afterEach(): происходит сразу после каждого тестирования того же блока, определенного с помощью describe()

4. after(): происходит после всего хаоса тестов.

несколько beforeEach() встречаются в том порядке, в котором они определены, как и afterEach() в одном блоке. но ловушка before() и after() выполняется ровно один раз в этом блоке.

Строительные блоки для испытаний

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

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

Внутри it() обычно есть вызовы api с использованием http-вызывающего объекта, например supertest, который вызывает конечную точку api и сравнивает результаты с конкретным результатом с использованием библиотеки утверждений, например chai или assert.

Ниже приведен образец тестового файла, который описывает некоторые тесты с использованием it() и подтверждает результат с желаемым результатом:

describe() и it() могут быть вызваны с .skip(), чтобы пропустить весь набор тестов (в случае describe().skip()) или тест (в случае it().skip())

аналогично, они могут быть вызваны с only() для запуска только определенного набора (describe()) или теста (it()) во время теста. их может быть несколько only() или несколько skip() во всем комплекте, если это необходимо.

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

Иногда вам может потребоваться установить некоторые данные или переменные на некоторые начальные значения, чтобы вы могли запускать тестовые примеры, повторно используя эти данные. Они называются fixtures. Они понадобятся вам для более сложных тестов.

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

Я Ракибул Хак, работаю инженером-программистом в Portonics Ltd.

В настоящее время я использую бэкэнд с помощью PHP (Laravel, Flight), Postgres, Redis и Docker. Но у меня есть опыт управления серверами VPS, которые работают на Apache или nginx, Nodejs (Express.js), Vuejs, Android. Твитни, если найдешь чем-нибудь интересным поделиться :) Береги себя!