测试无法读取 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”设置为 null

语法中的 innerHTML 错误不起作用;未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)[重复]

未捕获的 TypeError:无法设置 null 的属性(设置“innerHTML”)