Javascript 如何预防;“污染”;Jest测试中的变量?
我的测试如下所示:Javascript 如何预防;“污染”;Jest测试中的变量?,javascript,jestjs,Javascript,Jestjs,我的测试如下所示: const aframeViewer = new VRMaker.AframeViewer() let el let panoramas let panorama beforeEach(() => { panorama = { objectId: '1' } panoramas = [panorama] el = 'vrmaker-aframe' }) describe('commonViewer', () => { it('addPanor
const aframeViewer = new VRMaker.AframeViewer()
let el
let panoramas
let panorama
beforeEach(() => {
panorama = { objectId: '1' }
panoramas = [panorama]
el = 'vrmaker-aframe'
})
describe('commonViewer', () => {
it('addPanoramas', () => {
const oldPanoramas = clone(panoramas)
aframeViewer.addPanoramas([{ objectId: '2' }])
expect(aframeViewer.getPanoramas()).not.toBe(oldPanoramas)
})
it('getPanoramas', () => {
expect(aframeViewer.getPanoramas()).toBe(panoramas)
})
it('getCurrentPanorama', () => {
expect(aframeViewer.getCurrentPanorama()).toBe(panorama)
})
})
这里的问题是,aframeViewer.addPanoramas([{objectId:'2'}])
将此:
[{ objectId: 1 }]
进入这个
[{ objectId: 1 }, { objectId: '2' }]
因此,getPanoramas
测试有一个受污染的变量。(getCurrentPanorama
也有同样的问题。)
避免这种情况的最好方法是什么
让aframeViewer代码>和在每个之前的中添加:
aframeViewer=新建VRMaker.aframeViewer()
中执行任何需要执行的操作
谢谢你在Netflix工作?我可以要你的签名吗?@alex lol,我现在为一家小型初创公司工作,请为我祈祷!:)