Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 不带module.exports的Jest单元测试_Javascript_Node.js_Unit Testing_Npm_Jestjs - Fatal编程技术网

Javascript 不带module.exports的Jest单元测试

Javascript 不带module.exports的Jest单元测试,javascript,node.js,unit-testing,npm,jestjs,Javascript,Node.js,Unit Testing,Npm,Jestjs,我有一个脚本,其中包含一个const变量,该变量保存了我的所有逻辑,有点像矩.js。 我想用Jest测试这个脚本中的函数 我无法使用module.exports,因为它在我发布脚本时不起作用。 如果我不能使用module.exports我就不能使用require 但我仍然希望在脚本上运行单元测试。 我尝试过使用import,但运气不佳 这是我的密码: import 'src/library.js'; test('Something', () => { expect(library

我有一个脚本,其中包含一个
const
变量,该变量保存了我的所有逻辑,有点像矩.js。
我想用Jest测试这个脚本中的函数

我无法使用
module.exports
,因为它在我发布脚本时不起作用。
如果我不能使用
module.exports
我就不能使用
require

但我仍然希望在脚本上运行单元测试。
我尝试过使用
import
,但运气不佳

这是我的密码:

import 'src/library.js';

test('Something', () => {
    expect(library.add(1,2)).toBe(3);
});
这是我的图书馆:

const library = () => {
    return {
        add : (num1,num2) => num1 + num2,
        subtract : (num1,num2) => num1 - num2
    }
}
第一个选项(快速和肮脏): 不要进口。只需将代码移到一个文件中

第二种选择(最佳长期):
了解如何使用(网页包和)。

如何使用以下内容包装您的导出:

if (typeof exports !== 'undefined') {
    module.exports = { yourWhatever };
}

想想看,我可以使用gulp合并这两个文件(测试一个和库一个)。