如何在笑话单元测试中模拟“ <script>”

时间:2020-05-24 14:15:56

标签: javascript reactjs unit-testing jestjs

需要测试的我的js文件导入了一个iconfont.js库,以便在此组件中使用图标。但是当我运行npm test时,它显示:

Test suite failed to run

TypeError: Cannot read property 'getAttribute' of undefined

当我看到iconfont.js时,它具有以下有关此错误的代码:

h=(a=document.getElementsByTagName("script"))[a.length-1].getAttribute("data-injectcss");

我尝试在测试文件中使用document.body.innerHTML来模拟,但没有用。

我是反应单元测试的新手,请帮助我。

1 个答案:

答案 0 :(得分:0)

我自己解决此问题。 我使用require()代替import,并在需要之前将<script></script>分配给document.body.innerHTML。 如下所示:

//old
import component from 'need-test-component';
//new
document.body.innerHTML = '<script></script>'
const component = require('need-test-component').default;