Javascript 每次试验前,酶还原getEelemenById

Javascript 每次试验前,酶还原getEelemenById,javascript,sinon,enzyme,sinon-chai,chai-enzyme,Javascript,Sinon,Enzyme,Sinon Chai,Chai Enzyme,在每次之前的中,我将stubgetElementById,并希望在另一次测试之前将其还原,然后再次使用另一个stub返回值。因为现在我收到了错误 TypeError:试图包装已包装的getElementById let loginUrl = 'loginUrl' const url = '/app/auth' const textContent = `{"${loginUrl}":"${url}"}`

在每次之前的
中,我将stub
getElementById
,并希望在另一次测试之前将其还原,然后再次使用另一个stub返回值。因为现在我收到了错误
TypeError:试图包装已包装的getElementById

 let loginUrl = 'loginUrl'
    const url = '/app/auth'
    const textContent = `{"${loginUrl}":"${url}"}`
    let htmlDecode

    describe('identityServer', () => {

        beforeEach(() => {
            htmlDecode = sinon.stub().returns(textContent)
            sinon.stub(document, 'getElementById').returns({textContent})
            sinon.stub(htmlEncoder, 'Encoder').returns({htmlDecode: () => htmlDecode})

            identityServerModel()
        })

        it('should return correct model for IdentityServer', () => {
            window.identityServer.getModel().should.deep.equal({[loginUrl]: url})
        })
    })

    describe('identityServer', () => {

        beforeEach(() => {
            htmlDecode = sinon.stub().returns(textContent)
            sinon.stub(document, 'getElementById').returns({innerHTML: textContent})
            sinon.stub(htmlEncoder, 'Encoder').returns({htmlDecode: () => htmlDecode})

            identityServerModel()
        })
        it('should return correct model using serialization HTML from innerHTML property when textContent is undefined', () => {
            window.identityServer.getModel().should.deep.equal({[loginUrl]: url})
        })
    })
尝试添加:

afterEach(() => {
    document.getElementById.restore();
})
进入每个
描述(…)