ate*_*kov 4 node.js express typescript google-cloud-functions
我正在离线模式下测试我的端点,模拟/伪造所有数据。基于云功能文档的Firebase单元测试,他们使用它如下:
const req = { query: {text: 'input'} };
const res = {
redirect: (code, url) => {
assert.equal(code, 303);
assert.equal(url, 'new_ref');
done();
}
};
// Invoke addMessage with our fake request and response objects
myFunctions.addMessage(req, res);
Run Code Online (Sandbox Code Playgroud)
我的代码类似:
const req = {
}
const res = {
}
updateUser(req, res)
// and this is 'updateUser()' function in another file
export default functions.https.onRequest(async (req, res) => { ... }
Run Code Online (Sandbox Code Playgroud)
所以我收到以下错误:
“{}”类型的参数不可分配给“Request”类型的参数。类型“{}”缺少类型“Request”中的以下属性:get、header、accepts、acceptsCharsets 等 67 个属性。
如何避免将 67 个属性全部放入?我只想提供“方法”、“查询”或“主体”属性。
谢谢@mamichels,在他们的帮助下我已经成功解决了这个问题。因此,我发布解决方案以防万一,它可能会对某人有所帮助。我将 Firebase CF 与 Express 结合使用。
import * as express from "express"
...
it("should do something", async () => {
const req = {
method: "POST"
}
const res = {
}
updateUser(req as express.Request, res as express.Response)
})
Run Code Online (Sandbox Code Playgroud)
我的 updateUser 看起来像:
export default functions.https.onRequest(async (req, res) => {
...
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3106 次 |
| 最近记录: |