1

我有一个产生副作用的功能。我正在简化它以记录节点元素的内容,以保持对问题的关注。

日志文件.js

function log() {
  console.log(document.querySelector('#mydiv').textContent)
}

export { log }

然后我有单元测试

log.test.js

import {
  log
} from '../logFile'

import { JSDOM } from 'jsdom'

describe('Test log function', () => {

  it('should log what the div is holding', () => {
    const dom = new JSDOM(`<!DOCTYPE html><div id="mydiv">HELLO</div>`);
    const document = dom.window.document;

    // This works
    console.log(document.querySelector('#mydiv').textContent)

    // This also works
    console.log(document.querySelector('#mydiv').textContent)

    // This doesn't work
    log()
  });
})

这是一个简单的例子,但是,如果我想使用 .appendChild() ... 来操作 DOM,会发生什么?

在控制台中我看到以下错误

    TypeError: Cannot read property 'textContent' of null

      26 |   
    > 27 |   console.log(document.querySelector('#mydiv').textContent)
         |               ^
      28 |
      29 | }

任何人都可以帮助我吗?谢谢

4

0 回答 0