Есть ли привязка к транспорту в тестах

Ответ

Тесты могут быть как привязаны к транспорту (например, 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, то ты просто еблан, иди переписывай.

А выбор, сука, зависит от того, что тебе надо: проверить логику (юниты) или удостовериться, что вся система не накрылась медным тазом (интеграция). Всё просто, как три копейки.