> For the complete documentation index, see [llms.txt](https://reloaderlev.gitbook.io/russian-goit-node-js-new-program/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://reloaderlev.gitbook.io/russian-goit-node-js-new-program/testirovanie/instrumenty-neobkhodimye-dlya-provedeniya-yunit-testov.md).

# Инструменты, необходимые для проведения юнит-тестов

Для проведения юнит-тестов на бэк-энде вам обычно необходимы будут следующие инструменты:

* test runner. Фреймворк, основная функция которого - это инициализация тестовой среды и запуск тестов. Популярные test runner для node.js: [Mocha](https://mochajs.org/), [Jasmine](https://jasmine.github.io/), [JEST](https://jestjs.io/)
* Assertion library. Библиотека, которая помогает вам проверить полученные после тестового запуска модуля данные совпадают с ожидаемым результатом. Популярные assertion library: assert (build-in Node.js lib), [Chai](https://www.chaijs.com/), [Should.js](http://shouldjs.github.io/), [Must.js](https://github.com/moll/js-must/blob/master/doc/API.md#assertionError.expected)
* Mocking library Библиотека, которая помогает вам изменить поведение определенных функций на момент запуска теста. Популярные mocking library: [sinon.js](https://sinonjs.org/)

{% hint style="info" %}
Для более сложных тестов (например системных), для проверки правильности функционирования ендпоинта в целом, могут использоваться библиотеки для тестирования HTTP запросов, одними из которых являются [supertest](https://www.npmjs.com/package/supertest), [supertest-promised](https://www.npmjs.com/package/supertest-promised)
{% endhint %}
