gpt4 book ai didi

javascript - 使导入的函数使用新变量

转载 作者:行者123 更新时间:2023-11-30 14:47:09 25 4
gpt4 key购买 nike

我正在尝试为我的一个旧应用程序编写一些单元测试。那时我没想到我会想在主文件之外使用函数,所以我在其中使用了很多局部变量。我的问题是,在导入它们之后,他们试图使用来自其他范围的变量。有没有办法让他们在不更改旧文件的情况下使用新范围?

\\foo.js

let arr
exports.foo = function foo() {
return arr[0]
}

\\foo.test.js

let arr = ['bar']
let foo = require('../test/supreme.spec.js').foo
console.log(foo())//undefined, want 'bar'

我明白这可能是一个非常糟糕的做法,但那是一个旧代码,我现在不想乱用它。

最佳答案

你可以使用 rewire .它专为此类情况而设计:

let rewire = require('rewire')

let fooModule = rewire('../lib/foo.js')

fooModule.__set__('arr', [ 'bar' ])
console.log(fooModule.foo()) // bar

关于javascript - 使导入的函数使用新变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48736663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com