Express-单元测试中间件输出

时间:2019-03-06 16:26:15

标签: node.js unit-testing express tdd middleware

我想在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作为测试框架

0 个答案:

没有答案