Jest怎么测试js方式创建script标签加载后的onload事件

js文件:

// load-script.js
function loadScript(path) {
  return new Promise((resolve, reject) => {
    const script = document.createElement('script')
    script.src = path
    script.onload = resolve
    script.onerror = reject
    document.head.appendChild(script)
  })
}

测试脚本spec文件:

import loadScript from '@/js/load-script'

describe('utils/load-script', () => {

  it('load', (done) => {
    const url = 'a.js'

    loadScript(url).then(() => {
      const script = document.getElementsByTagName('script')[0]
      expect(script.src).toBe(`http://localhost/${url}`)
      done()
    })
  })
})

运行结果永远是:
image.png

原因是load-script.js中的onload事件永远都不触发。

那这种情况,改怎么测试呢?

求教 T T

阅读 2.9k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进