Интеграция против модульных тестов для API - PullRequest
0 голосов
/ 07 декабря 2018

Можем ли мы рассмотреть вопрос об отправке запроса в конечную точку как о модуле или интеграционном тесте?

import lib from 'testing-lib';
// ...
const { testClient, expect } = lib;
const response = testClient
    .request(app)
    .get('/test/endpoint/');
// ...

expect(response).fulfills.some.condition.ok

У меня такое ощущение, что это интеграционный тест, потому что он установит, что каждая часть, которая находится междузапрос отправляется и ответ возвращается, работает как ожидалось.Мне нужно знать, верно ли мое смутное понимание или я упускаю некоторые детали.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Я пойду ни с одним.Это функциональный тест.

Модульные тесты тестовые блоки кода.Отсюда и название.Единица кода, как правило, представляет собой функцию, класс или модуль какого-либо рода.

Интеграционные тесты подтверждают, что наши единицы кода работают вместе, как и ожидалось.Но это все еще только тестирование кода.

Функциональные тесты тестирование реального программного обеспечения в развернутом состоянии через открытые интерфейсы.

Так, в Node модульное тестирование может бытьсамостоятельно протестировать один из ваших модулей JavaScript и смоделировать зависимости.Интеграционный тест будет проверять, что ваши модули работают вместе, и макетировать только крайние края системы.А функциональный тест будет проверять, что конкретная конечная точка работает по HTTP и ничего не издевается.

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

0 голосов
/ 07 декабря 2018

Да, это скорее интеграционный тест.

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

Интеграционный тест проверяет, нормально ли работает поток данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...