Ответ
Тесты могут быть как привязаны к транспорту (например, HTTP-запросы), так и независимыми.
Привязанные к транспорту:
- Интеграционные/E2E тесты, которые проверяют работу API или UI через реальные HTTP-запросы.
- Пример: тесты с использованием
supertestдля Express-приложений.
const request = require('supertest');
const app = require('./app');
test('GET /api/users returns 200', async () => {
const response = await request(app).get('/api/users');
expect(response.statusCode).toBe(200);
});
Независимые от транспорта:
- Юнит-тесты, которые проверяют бизнес-логику без HTTP.
- Пример: тестирование функции-хелпера.
function sum(a, b) {
return a + b;
}
test('sum adds numbers correctly', () => {
expect(sum(2, 3)).toBe(5);
});
Выбор зависит от цели тестирования: проверка логики (юниты) или работы системы в целом (интеграция).
Ответ 18+ 🔞
Слушай, вот смотри, как это бывает. Сидишь ты такой, пишешь код, а потом бац — и надо его тестировать. А тесты, они, сука, как люди: одни любят общаться через протоколы, а другим похуй, они сами по себе.
Те, что привязаны к транспорту — ну, реальные распиздяи:
Это типа интеграционных или E2E тестов, которые лезут в твоё API или UI через настоящие HTTP-запросы, будто в дверь ломятся. Представь, используешь supertest для своего Express-приложения — вот это и есть они, наглецы.
const request = require('supertest');
const app = require('./app');
test('GET /api/users returns 200', async () => {
const response = await request(app).get('/api/users');
expect(response.statusCode).toBe(200);
});
Тут всё просто: поднял приложение, долбанул запрос и ждёшь, не обосрётся ли ответ. Если статус 200 — ну, ебать, живы как-то.
А есть те, кому на транспорт насрать — независимые отшельники: Это уже юнит-тесты, которые проверяют голую бизнес-логику, даже не вспоминая про HTTP. Типа тестируешь какую-нибудь функцию-хелпер, которая складывает цифры — ей вообще похуй, откуда эти цифры приползли.
function sum(a, b) {
return a + b;
}
test('sum adds numbers correctly', () => {
expect(sum(2, 3)).toBe(5);
});
Вот тут уже ни тебе запросов, ни серверов — чистая математика, блядь. Если 2 + 3 не 5, то ты просто еблан, иди переписывай.
А выбор, сука, зависит от того, что тебе надо: проверить логику (юниты) или удостовериться, что вся система не накрылась медным тазом (интеграция). Всё просто, как три копейки.