测试报错then of undefined

来源:9-8 创建编辑页面测试编写

慕瓜5414566

2020-12-31

老师,这边mockReturnValue,跟老师一样给Promise.resolve
但是却拿不到then方法,这是什么原因呢
图片描述

写回答

2回答

张轩

2021-01-07

同学你好 一阵努力 找到了原因 issue 请见 https://github.com/facebook/jest/issues/9131 原因是 新版的 create-react-app 默认的 jest 配置是每个case 以后会 resetMocks,这样我们的 mock 就都被搞没了。在 package.json 中添加一个字段可以解决这个问题:

"jest": {
    "resetMocks": false
},


2
1
慕瓜5414566
原来是这样!,后来发现在package.json上方位置添加重启后生效了,老师感谢...这真的是个巨坑哈
2021-01-08
共1条回复

张轩

2021-01-04

同学你好 能否提供一下源代码(git) 我在本地帮你看一下哈

0
1
慕瓜5414566
摁摁谢谢老师,这几天一直卡找不到好的解法,卡得难受 https://github.com/a23246542/e-money-book/blob/hotfix/test-hooks/src/containers/Create.js promise之后还有遇到一个问题 创建表单用新版react来写,但一直报错说调用顺序有误 但已经依循官方原则了,只有跑测试才会出现这错误,也是摸坑了很久..不解其因 https://github.com/a23246542/e-money-book/blob/hotfix%2Ftest-hooks/src/components/LedgerForm.js console.error Warning: React has detected a change in the order of Hooks called by LedgerForm. This will lead to bugs and errors if not fixed. For more information, read the Rules of Hooks: https://reactjs.org/link/rules-of-hooks Previous render Next render ------------------------------------------------------ 1. useState useEffect ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 14 | 15 | > 16 | useEffect(() => { | ^ 17 | // if (ledgerItem.id) { 18 | console.log(ledgerItem,'ledgerFrom useEffect'); 19 | setTitle(ledgerItem.title);
2021-01-04
共1条回复

React16组件化+测试+全流程 实战在线账本项目

轻松上手,从设计图到上线,精通组件化思维和组件测试

713 学习 · 177 问题

查看课程