Button 按钮测试 link的时候总会出现这个 error 怎么解决

来源:5-5 添加Button 测试代码 第二部分

WOW林勇强

2020-04-01

 console.error node_modules/jsdom/lib/jsdom/virtual-console.js:29
    Error: Not implemented: navigation (except hash changes)
        at module.exports (/Users/linyongqiang/workSpace/my_project/fh-ui/node_modules/jsdom/lib/jsdom/browser/not-implemented.js:9:17)
        at navigateFetch (/Users/linyongqiang/workSpace/my_project/fh-ui/node_modules/jsdom/lib/jsdom/living/window/navigation.js:77:3)
        at exports.navigate (/Users/linyongqiang/workSpace/my_project/fh-ui/node_modules/jsdom/lib/jsdom/living/window/navigation.js:55:3)
        at Timeout.setTimeout (/Users/linyongqiang/workSpace/my_project/fh-ui/node_modules/jsdom/lib/jsdom/living/nodes/HTMLHyperlinkElementUtils-impl.js:81:7)
        at ontimeout (timers.js:436:11)
        at tryOnTimeout (timers.js:300:5)
        at listOnTimeout (timers.js:263:5)
        at Timer.processTimers (timers.js:223:10) undefined
        

我在网上看了原因,是因为 JSDOM does not implement methods like window.alert, window.location.assign。但是怎么解决呢,一直没办法消除这个错误,虽然不影响整体测试

写回答

1回答

张轩

2020-04-02

同学你好,你是在点击回调里面写了 window.alert 这样的方法吗?我建议你不要这样写,这个和单元测试没有任何关系,我们只需要使用 haveBeenCalled 测试,属性中的方法是否成功被调用就可以了。如果要消除错误,可以继续往下看,后面的章节有方法mock 掉一些第三方的对象,比如 window 对象,下面这篇文档写了 mock window 的方法, 你可以看看 https://gist.github.com/remarkablemark/5cb571a13a6635ab89cf2bb47dc004a3

0
0

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2124 学习 · 959 问题

查看课程