Я хочу проверить свой контроллер в настройке узла 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 в качестве основы теста