javascript - 模拟 admin.firestore().collection().get()

标签 javascript firebase google-cloud-firestore google-cloud-functions

与此[问题][1]相关,我在进行单元测试时尝试模拟 firestore。

我试图模拟的代码如下所示:

const firestore = admin.firestore();
const users = await firestore.collection('users').get();

我试图模拟它看起来像这样:

const firestoreStub = sinon.stub();
Object.defineProperty(admin, 'firestore', {
  get: () => {
    return {
      collection: (path) => Promise.resolve({mocka: 'user'})
    }
  }
});

但是它不起作用。

我已经创建了一个 repo(官方函数 repo 的克隆),以给出整个示例 here如果有帮助。

最佳答案

在 Mark 的帮助下,我完成了这项工作:

sinon.stub(admin, 'firestore')
        .get(() => {
            return function() {
                return {
                    collection: (path) => {
                        return {
                            get: () => [{user: 'mock-user-1'}, {user: 'mock-user-2'}]
                        }
                    }
                }
            }
        });

这看起来很疯狂 - 所以如果有人知道更好的解决方案,请告诉我!

关于javascript - 模拟 admin.firestore().collection().get(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49800384/

相关文章:

javascript - dc js - 无法重绘图表

JavaScript 不会使用 HTML DOM 显示日期

javascript - 从 Firebase、angularJS 检索日期

javascript - React DND - 拖放事件后无法将新项目添加到状态

android - Firebase 动态链接 PendingDynamicLinkData 返回 null android

javascript - 您可以创建动态 Firebase 查询吗?

kotlin - 如何将自动生成的ID添加到Cloud Firestore数据库

reactjs - 如何在 React.js 中将图像上传到 Firebase 存储并同时将 URL 上传到 Firestore?

javascript - 将数据从数组上传到 firebase 存储和 Firebase 数据库

ios - 如何修复无法获取默认 token 错误?