Как выполнить модульное тестирование express вызовов маршрутизатора к контроллеру - PullRequest
0 голосов
/ 31 марта 2020

Я просто пытаюсь проверить, как вызывается userController после запроса маршрута get. Я видел несколько других вопросов о StackOverflow, где принят ответ «использовать супертест», но решения, как правило, больше похожи на интеграционные тесты, чем на модульные тесты.

Думаю ли я об этом неправильно, и не следует ли Express маршрутам не пройти модульное тестирование, а просто тестировать, когда я пишу свои интеграционные тесты?

Любая помощь будет принята.

контроллер. js

const userController = {

    get: (req, res, next) => {
        return res.status(200).json('hiding get request from controller')
    }
}

export default userController

маршруты. js

import express from 'express';
import userController from '../controllers/users';
const userRouter = express.Router();


userRouter.get('/', userController.get)


export default userRouter;

1 Ответ

1 голос
/ 31 марта 2020

Если вы прочитали супериспытательную документацию
, она гласит: Управляемая супер-агентом библиотека для тестирования node.js HTTP-серверов с использованием свободно распространяемого API.
Таким образом, вы можете использовать ее как для тестирования ubit и интеграционное тестирование. Это то, что даже на академическом c уровне вызывает споры. В качестве идеи:

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

и вот проблема начинается.
Возьмите, например, систему ERP, состоящую из различных модулей (Финансы, Продажи, CRM, ...)
Если вы посмотрите на высокий уровень, то это модули, а с точки зрения системного архитектора интеграционный тест будет, например, между финансами и Модуль CRM.
Рассматривая финансовый модуль, модули представляют собой бухгалтерские книги и учет затрат - тестирование интеграции на этом уровне проводится между этими модулями. Итак, изучая бухгалтерские книги, у вас есть резервирование и модуль отчетности, так что ...

Единственное, что мы можем предположить, это то, что большинство программистов / разработчиков обычно принимают, что один простой отчет - это единица, а остальные - чисто определение и соглашение - на уровне принятого стандарта или определения, принятого организацией.
Как бы вы это ни называли, или вы чувствуете, что единственное, что точно - это протестируйте ваше приложение задолго до его доставки.

Таким образом, единственный, кто даст «правильный» ответ, это вы (и ваша команда, если есть)

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