为什么这边测试无法通过?

为什么这边测试无法通过?

错误信息

  ● Uploader Component › upload process should works fine

    TypeError: Cannot set property 'hasOwnProperty' of undefined

      11 |   beforeAll(() => {
      11 |   beforeAll(() => {
      12 |     console.log("wrapper----", wrapper, shallowMount);
    > 13 |     wrapper = shallowMount(Uploader, {
         |               ^
      14 |       props: {
      15 |         action: "test.url",
      16 |       },

git地址

gitee.com/xiebinyin/lego.git

我都不知道怎么回事,我刚才查看以前的回答把插件升级了一下,结果现在就报这个错误

TypeError: Cannot set property 'hasOwnProperty' of undefined

正在回答

登陆购买课程后可参与讨论,去登陆

2回答

同学你好


测试发现你的 repo 确实有问题,因为调用 jest.mock('axios') 返回的仅有 get 方法。

console.log('mocked', mockedAxios)
// 打印出来就会发现 只有一个 get 方法
// 所以
mockedAxios.post.mockResolvedValueOnce({ status: "success" });
// 就会报错
// 如果你调用 mockedAxios.get.xxx 的各种方法就不会报错
// 可以修改为
mockedAxios.post = jest.fn().mockResolvedValueOnce({ status: "success" })
// 这样就没问题了,因为这样是手动赋值的,注意以后模拟请求的地方都要这样修改一下


我目前没有找到根本原因,为什么调用 mock 以后只剩下了 get 方法,怀疑 jest 版本,等等,会继续追查一下,你可以先替换成这样的写法。

https://img1.sycdn.imooc.com//climg/63631eb70995d74a10140416.jpg

  • 慕粉3946981 提问者 #1

    ok,按上述方法已解决问题。

    2022-11-03 10:05:05
张轩 2022-11-01 09:47:09

同学你好

这部分的内容先不要使用 rc18 版本,用和课程一样的版本最好

 npm install @vue/test-utils@2.0.0-beta.14 --save-dev

  • 提问者 慕粉3946981 #1

    还是无法解决!

    2022-11-02 09:00:36
  • 张轩 回复 提问者 慕粉3946981 #2

    同学你好 你是安装了以后还出现这个错误吗?我昨天用你的 repo 试过,安装另外版本的,这个错误就消失了。

    2022-11-02 09:24:04
  • 提问者 慕粉3946981 回复 张轩 #3

    是的,我安装了你上面的插件版本后,测试还是无法通过,麻烦帮我看一下,我将无法通过的代码又提交了一次,还是上面的仓库地址。我用的系统是 win11。

    2022-11-02 20:46:06
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师