为什么在邮递员工作中得到的回应却不是我的考试?

时间:2017-02-14 21:07:59

标签: javascript node.js express mongoose supertest

我有这个快速控制器,以便找到用户是其接收者的未读通知量。这里:

app.get('/api/user/:uid/notifications/newcount', (req, res, next) => {
    const firebaseUID = req.params.uid;

    User.findOne({ firebaseUID })
      .select('_id')
      .then(user => Notification.count({
          recipients: { $eq: user._id },
          usersRead: { $ne: user._id }
        })
      )
      .then(notificationCount => {
        console.log(notificationCount.toString());
        return res.send(notificationCount.toString())
      })
      .catch(next);
  });

这对邮递员来说效果很好。

我正在尝试使用Mocha / Supertest进行测试。但由于某种原因,res.body总是以空物体的形式回归。

控制台登录实际的控制器总是很顺利。

如果我不在[{1}}中发送toString(),那么我会收到错误。

res.send()应该以{{1​​}}的形式返回。

我如何抓住下面测试中的res.body才能作出断言?

1

谢谢!

1 个答案:

答案 0 :(得分:1)

superagent基于的supertest模块中,response.body属性仅在响应可以是parsed到Javascript对象时填充。 response.text属性将包含普通响应正文作为字符串。

看起来text property name来自XMLHttpRequest中的responseText