Node.js 到新Jsdom的Jsdom.env,迁移

Node.js 到新Jsdom的Jsdom.env,迁移,node.js,chai,jsdom,Node.js,Chai,Jsdom,背景 因此,我一直在学习一个教程来理解JS测试框架,并了解到要测试Web UI,最好使用JSDOM库,因为它不需要浏览器,并且带来了DOM,然后可以以无头方式执行 对于断言库,我使用了Chai,作为测试框架,我选择了Mocha 测试用例:我想通过读取一个html文件的h1标记的值来测试它,在本例中是Hello World,我会断言它为true 这对于较旧版本的JSDOM包很好,但正如我检查过的JSDOM文档所示,新的方法是JSDOM构造函数 那么,我如何迁移这个测试用例以符合JSDOM库的更新样

背景

因此,我一直在学习一个教程来理解JS测试框架,并了解到要测试Web UI,最好使用JSDOM库,因为它不需要浏览器,并且带来了DOM,然后可以以无头方式执行

对于断言库,我使用了Chai,作为测试框架,我选择了Mocha

测试用例:我想通过读取一个html文件的h1标记的值来测试它,在本例中是Hello World,我会断言它为true

这对于较旧版本的JSDOM包很好,但正如我检查过的JSDOM文档所示,新的方法是JSDOM构造函数


那么,我如何迁移这个测试用例以符合JSDOM库的更新样式。

不知何故,我成功地启动并运行了我的测试用例

describe('index.html', () => { // eslint-disable-line
  it('should say hello' , (done) => { // eslint-disable-line
    const options = { }
    JSDOM.fromFile('./src/index.html', options).then(dom => {
      const h1 = dom.window.document.getElementsByTagName('h1')[0]
      expect(h1.innerHTML).to.equal('Hello World!')
      done()
    }).catch(done)
  })
})

我建议切换到,因为它基本上是为您预先配置的Mocha+Chai+JSDOM。@AKX感谢您的建议,但现在我想分门别类地了解基本内容,然后使用Jest之类的脚手架测试框架。如果您能帮助我学习JSDOM的新语法,我将不胜感激。
describe('index.html', () => { // eslint-disable-line
  it('should say hello' , (done) => { // eslint-disable-line
    const options = { }
    JSDOM.fromFile('./src/index.html', options).then(dom => {
      const h1 = dom.window.document.getElementsByTagName('h1')[0]
      expect(h1.innerHTML).to.equal('Hello World!')
      done()
    }).catch(done)
  })
})