我正在使用Mocha.js在Node.js - Express.js - Firebase中进行测试
我需要一个来自firebase的令牌来访问API端点,我在我的所有文件中都有一个预挂钩,但是经过大约250个测试(可能多次调用身份验证端点),我得到了受Firebase限制的速率。
我只想得到一次令牌,并在我的所有测试中使用它。
测试是在不同的文件中传播的,我有一个index.js,它需要所有的测试。我知道根级钩子,但是如何保存令牌并在所有单独的文件中使用它呢?
谢谢!
发布于 2022-01-13 23:37:11
您可以创建一个获取令牌的函数。那就叫吧。然后再创建测试套件。
function getToken(callback) {
//
}
// define tests
function allTests(token) {
describe(xxxxxx, function () {
it(xxxxxxxxx, function() {
//
})
});
}
// start all
getToken(function(token) {
allTests(token);
});发布于 2022-01-16 05:11:37
我自己解决了这个问题,如果有人需要一个关于如何处理它的答案,请看这个。
我有多个文件,在这里我们编写单元测试,我们将它们合并到一个用于测试的index.spec.js中($ mocha index.spec.js)
我创建了一个如下所示的实用程序文件:
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为我工作。
通过这种方式,我在测试中需要这个文件,并获得一次开始时得到的令牌,从而避免了速率限制和任何与防火墙有关的问题。
发布于 2022-02-12 09:55:39
在您的测试根directory.
https://stackoverflow.com/questions/70704121
复制相似问题