【发布时间】:2018-04-19 06:52:45
【问题描述】:
我有一个带有单个匿名函数的 js 文件,没有导出或分配给 module.exports。我无法更改此文件。但我需要能够测试它。如何将这个文件要求/导入到测试中?
例如。
myScript.js(无法修改)
/*
* Documentation for function
*
*/
function (param1, cb) {
cb(param1);
}
myScript.test.js
// How can I get this anonymous function here?
const myScript = require('./myScript');
已完成的一个选项是将myScript.js 作为文件读取,剥离cmets 并使用Function.apply 将代码作为字符串。这感觉像是一种 hacky 方法,所以我正在搜索 CommonJS 等区域中是否有任何东西可以解决这个限制。
【问题讨论】:
-
这是一个真实的例子吗? 任何人如何调用这个函数(在这个文件内部或外部)?
-
我认为通过文件外部执行该功能是不可能的
-
这是一个真实世界的例子,这个脚本被一个系统使用,它将它作为一个字符串读取并在特定条件下执行它,就像一个插件系统。
-
你不能执行这个函数,除非你把它存储在我猜的变量中,或者你使用trailing parentheses
-
和你一样,不修改脚本(无论是在内存中还是在磁盘中),没有人可以使用该功能。
标签: javascript