【发布时间】:2018-06-12 13:40:43
【问题描述】:
我已经学习 NodeJS 大约一年了,今天我发现了一些奇怪的东西。我们都知道,为了在另一个模块中使用一个模块(函数、对象或变量),我们必须导出和导入它,除了 String、Number、Promise 等本机模块。我安装了一个外部包用于单元测试,名为 @ 987654321@.
这里奇怪的是我创建了两个测试模块:logic.js 和logic.test.js,我没有导入 Jest 模块,但是我可以访问它的所有方法。让我们展示一些代码:
logic.js
module.exports.add = function(a, b){
return a + b;
}
logic.test.js
const lib = require('../logic')
test('Add - Should return the sum of two numbers', () => {
const result = lib.add(1,3);
expect(result).toBe(4);
});
正如您在 logic.test.js 中看到的那样,我可以访问 expect 和 test 方法,而且我并没有提及 Jest。
这里的问题是:
- 这怎么可能?
- 使用我的模块执行此操作是一个好习惯
【问题讨论】:
-
1)
globals 2) 不。 -
当我尝试这个时,我得到
ReferenceError: test is not defined -
@ChrisG 你安装了 Jest 吗? npm install --save-dev jest
-
@MarluanEspiritusantoGuerrero 当然。
-
您需要使用
jest命令行而不是node命令来启动笑话测试
标签: javascript node.js import module export