我正在从 Mocha 迁移到 Jest。我的测试导入了 'config' 包,它根据 NODE_ENV 变量选择一个或另一个配置文件。但是,从 Jest 运行测试时,配置似乎找到了 NODE_ENV 变量
下一行不起作用(即忽略 NODE_ENV):
NODE_ENV=test jest test/*.js --notify --config jest.config.json
Run Code Online (Sandbox Code Playgroud)
因此,“配置”包报告:
console.error node_modules/config/lib/config.js:1727
WARNING: NODE_ENV value of 'test' did not match any deployment config file names.
Run Code Online (Sandbox Code Playgroud)
你知道如何包含 NODE_ENV 吗?
编程是关于如何实现任何代码的决策.根据这些决定,代码将或多或少地具有可读性,高效性,复杂性等.一个常见的决定也是或多或少地习惯,即使用特定语句或您的编程语言或范例.
作为概念验证,我在Javascript中开发了两个代码片段来分析性能.我们的目标是产生以下形式的字符串tagA|tagB|tagC,其中则数tagX是随机的,后缀A,B,C是随机的整数.而且,tagX不能重演.
第一种实现更惯用,而第二种更传统.接下来是每个代码片段:
成语:
performance.mark('A');
let tags = new Set(Array.from({length: tagCount}, () => Math.floor(Math.random() * 10)));
tags = Array.from(tags).map(x => `tag${x}`).join('|');
performance.mark('B');
Run Code Online (Sandbox Code Playgroud)
传统
performance.mark('C');
let tagset = new Set();
let tagstr = "";
for (let tag=0; tag<tagCount; tag++) {
tagset.add(Math.floor(Math.random() * 10));
}
tagset.forEach((tag) => {
tagstr += 'tag' + tag + '|'
});
tagstr = tagstr.slice(0, -1);
performance.mark('D');
Run Code Online (Sandbox Code Playgroud)
为了衡量性能,我使用了Performance Timing API
结果有点令人沮丧,至少对我而言.请注意传统方式如何比其他方式更有效.
Idiomatic: 0.436535
Traditional: 0.048177 …Run Code Online (Sandbox Code Playgroud) 我有一个输入,用户在其中输入数字、整数或浮点数。我想知道这个数字是否正确,例如检查输入2r是否不正确。我的第一个方法是使用parseFloat,但它并没有抱怨这一点:
parseFloat('2r') // returns 2
Run Code Online (Sandbox Code Playgroud)
实际上,根据文档,这是预期的行为
你如何检查这2r是错误的?
javascript ×2
node.js ×2
ecmascript-6 ×1
idiomatic ×1
jestjs ×1
mocha.js ×1
parsefloat ×1
performance ×1
testing ×1