我在测试堆栈中使用karma / mocha / chrome无头。
--js 1
document.addEventListener('test', ...);
do sth more.
--js 2
document.addEventListener('test', ...);
do sth more differently.
-- test suite 1
require(test1)
i am dispatching the test event here to test js 1
-- test suite 2
require(test2)
I am dispatchinh the test event here to test js 2
问题是这两个文件现在都可以全局使用。当我运行测试套件2时,js1和js2事件都将监听我的调度,因为js1仍然是全局可用的。
我的完美情景将是。将js1加载到测试套件1并将其封装在那里。 Hacky方式将在测试运行后删除它。
我的问题是,如何确保在一个测试套件的范围内本地加载所需的js文件?基本上只加载特定测试套件的nesseccary文件,并使它们与其他测试套件隔离。
感谢。
答案 0 :(得分:1)
如果我正确理解了这个问题,您希望将模块的范围限定在相关的测试文件中吗?
如果是这样,那么您可以加载模块:
const sharedModule = require('some/shared/module');
describe('some test', function() {
const scopedModule = require('some/path/to/module');
it('should...', function() {
// Test code...
})
)
这将导致您的模块仅在测试开始执行时加载,并在该块内限定。