Express - выход промежуточного программного обеспечения UnitTesting - PullRequest
0 голосов
/ 06 марта 2019

Я хочу проверить свой контроллер в настройке узла Express; Я не использую метод res.send() в самом контроллере, но в отдельном промежуточном программном обеспечении

Это выглядит так:

Router > checkSession > Validation > Controller > send > errorHandler

Мой метод контроллера выглядит так:

foo : (req, res, next){

    //if something wrong
    const error = new Error("error msg")
          error.status = 400
          return next(error)

    //if everything OK
    req.response = {
          //Json to send
        }
    next()
}

Проверка промежуточного программного обеспечения req.response и правильное выполнение response.send() для клиента

Теперь, где я борюсь: Я делаю UnitTesting моих методов контроллера, и я хотел бы получить доступ к запросу (затем сравнить с ожидаемым результатом).

В контексте Express это легко, снаружи я не могу найти решение

it("check response", () => {
            const expectedResponse = { json: "myReponse" }
            const req = { body: expectedResponse.json }
            const res = {}
            const next = ()=>{}

            controller.method(req, res, next)

            // want to test req
            // expect(req.response).to.be.equal(expectedResponse)
        })

Я использую mocha / chai / sinon в качестве основы теста

...