测试无法读取 null 的属性 InnerHTML
Posted
技术标签:
【中文标题】测试无法读取 null 的属性 InnerHTML【英文标题】:Test cannot read property InnerHTML of null 【发布时间】:2019-08-09 06:36:18 【问题描述】:尝试对以下代码运行单元测试:Using Jest and Enzyme for React Js
在模拟函数中插入返回后,我不断收到错误消息:
这是模拟函数: const getCleanJSON = jest.fn (() => return '' )
如果没有 return ,我会收到以下错误:无法读取 null 的属性“appendChild”。我可能在我的模拟函数中遗漏了一些东西。有什么线索吗?
const s = document.createElement('script');
s.id = 'script'
s.type = 'text/template';
s.async = true;
s.innerhtml = script;
this.instance.appendChild(s);
this.renderView(serverSideRender);
这是错误所指的第二种方法
renderview()
.....
return (
engine.parseAndRender( document.getElementById('script').innerHTML, cleanJSON)
.then( (html) =>
if(document.getElementById('result'))
document.getElementById('result').innerHTML = html == 'null'? '': html
)
.catch(e => document.getElementById('result').innerHTML = pretty(this.escapeHTML(e.stack)))
)
【问题讨论】:
【参考方案1】:也许直接从模拟函数中返回对象?
const getCleanJSON = jest.fn (() => )
【讨论】:
不,它不能解决任何问题 - 在 Json 中得到一个意外令牌的不同错误以上是关于测试无法读取 null 的属性 InnerHTML的主要内容,如果未能解决你的问题,请参考以下文章
无法在 IF 语句中读取 null 的属性“innerHTML”[重复]
jQuery 文件上传。无法读取 null 的属性“innerHTML”
未捕获的类型错误:无法将属性“innerHTML”设置为 null
语法中的 innerHTML 错误不起作用;未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)[重复]