首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mocha.js -如何保存全局变量?

Mocha.js -如何保存全局变量?
EN

Stack Overflow用户
提问于 2022-01-13 22:58:13
回答 3查看 222关注 0票数 1

我正在使用Mocha.js在Node.js - Express.js - Firebase中进行测试

我需要一个来自firebase的令牌来访问API端点,我在我的所有文件中都有一个预挂钩,但是经过大约250个测试(可能多次调用身份验证端点),我得到了受Firebase限制的速率。

我只想得到一次令牌,并在我的所有测试中使用它。

测试是在不同的文件中传播的,我有一个index.js,它需要所有的测试。我知道根级钩子,但是如何保存令牌并在所有单独的文件中使用它呢?

谢谢!

EN

回答 3

Stack Overflow用户

发布于 2022-01-13 23:37:11

您可以创建一个获取令牌的函数。那就叫吧。然后再创建测试套件。

代码语言:javascript
复制
function getToken(callback) {
  //
}

// define tests
function allTests(token) {
    describe(xxxxxx, function () {
        it(xxxxxxxxx, function() {
            //
        })
    });
}

// start all
getToken(function(token) {
    allTests(token);
});
票数 0
EN

Stack Overflow用户

发布于 2022-01-16 05:11:37

我自己解决了这个问题,如果有人需要一个关于如何处理它的答案,请看这个。

我有多个文件,在这里我们编写单元测试,我们将它们合并到一个用于测试的index.spec.js中($ mocha index.spec.js)

我创建了一个如下所示的实用程序文件:

代码语言:javascript
复制
let token;
(() => { token = getYourToken() })()
module.exports = {
getToken: () => {
    return new Promise((resolve) => {
        const interval = setInterval(() => {
            if (token) {
                clearInterval(interval);
                resolve(token);
            }
        }, 100);
    });
}
};

基本上,它是一个单例,在index.spec.js中我需要这个文件,只执行一次'getYourToken()‘(在这里添加获取令牌的逻辑)。然后我将它存储在一个变量中,然后导出。在导出中,我使用一个间隔,因为我的当前代码没有使用承诺,请使用您的最佳实践方法,interval + Promise为我工作。

通过这种方式,我在测试中需要这个文件,并获得一次开始时得到的令牌,从而避免了速率限制和任何与防火墙有关的问题。

票数 0
EN

Stack Overflow用户

发布于 2022-02-12 09:55:39

在您的测试根directory.

  • Import文件中创建一个JSON文件。
  • 附加一个带有令牌值的令牌属性。
  • 然后将它导入到任何地方以访问令牌属性.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70704121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档