我正在尝试使用Mocha设置单元测试,同时使用jsDOM来模拟ES6的virtualDom;但是我最近的
总是出错 UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'innerHTML' of null
这是我的main.js设置
const url = 'https://localhost/demo.json';
const source = document.getElementById('row-template').innerHTML;
const contentLoop = document.getElementById('feedback-loop');
const searchForm = document.getElementById('searchForm');
const searchInput = document.getElementById('searchInput');
const ratingEntries = document.querySelectorAll('.ratings__button');
const lengthContainer = document.querySelector('.length');
和我的测试文件,仅包含这个main.js文件
使用.innerHTML
方法的每一行都会发生错误
const main = require('../src/js/main');
在使用此dom.js文件https://gist.github.com/ChidinmaKO/cd5a35624285c07e61a5373c5c8ff3ea
运行摩卡咖啡时请帮助。我想念什么?
答案 0 :(得分:2)
您有这行:
document.getElementById('row-template').innerHTML;
此错误:
无法读取null的属性“ innerHTML”
“无法读取属性innerHTML
”是指.innerHTML
调用。就是说,属性访问的左侧部分document.getElementById('row-template')
是null
。之所以为null,是因为document.getElementById('row-template')
在文档中找不到具有该ID的HTML元素。
确保ID实际上在DOM中存在。一个非常常见的错误是在存在整个HTML文档之前就在脚本块中运行代码(例如,如果您的脚本元素位于HTML的<head/>
中)。将代码放在正文的底部将确保在代码运行之前,其余HTML实际上已经存在。
如果这是在测试中发生的,则必须确保代码的预期DOM结构已由测试的设置安排。