# Функциональне тесты

Функциональное тестирование или Point-to-point (p2p) тестирование это способ интеграционного тестирования при котором тестируется работа высокоуровневой функции обычно от лица пользователя\
\
**Инструменты**

* Postman - тестирование API
* Selenium - функциональное тестирование
* [TestCafe](https://devexpress.github.io/testcafe/) - A node.js tool to automate  &#x20;end-to-end web testing
* [Karate](https://github.com/intuit/karate) - Karate is the only open-source tool to combine API test-automation, mocks and performance-testing into a single, unified framework. The BDD syntax popularized by Cucumber is language-neutral, and easy for even non-programmers.

**Именование тестов**

Хорошей практикой именования функциональных тестоя является использованием формата: Сущность - Ожидаемое поведение - При каких условиях. Примеры:

* User add an item to cart before an order is created
* User can't add an item to cart after an order is created
* User can see order list
* User can create new orders
* Seller can create a product
* Seller can edit product owned by him
* Seller can start an auction

**Полезные инструменты**

* Адреса для тестов <https://fakeaddressgenerator.com/>
* Одноразовая почта <https://temp-mail.org/>
* [Инструменты для автоматизированного end-to-end тестирования на базе JavaScript](https://dou.ua/lenta/articles/automation-js-frameworks/)
