【发布时间】:2018-05-08 08:33:08
【问题描述】:
如何在调用外部 api 的模块/函数下面进行测试?如果我正在触发不再是单元测试的 api,那就是调用集成或流测试。我知道有这样的东西叫做 mock api,但它应该测试什么?我预计只有 2 个结果,失败或成功。由于外部 api 已经处理边缘情况(说没有提供名称参数),我是否必须在我这边进行单元测试?
const request = require('request')
import PATH from './config/somewhere'
export const createUser = async (req, res, next) => {
try {
response = await request.post(`${PATH}/api/user/create`, {form: {name: req.body.name}})
res.json(response)
} catch(err) {
this.throw(err.message)
}
}
【问题讨论】:
-
如果您在此调用之后有额外的逻辑或在数据到达此处之前进行任何转换等,您应该通过模拟来测试该功能。否则,这将在集成或 e2e 等中涵盖,没有必要对这个 IMO 进行单元测试。
-
你需要模拟
request模块。
标签: javascript node.js unit-testing express