带有Jest错误,TypeError的Vue组件测试:无法读取未定义的属性“名称”

凯文·T。

我有一个带有以下模板的Vue组件。它接收一个对象作为道具。首先,将其从后端拉created()Admin.vue,作为数组传递到OrderList,循环遍历,然后作为单个订单传递给Order中的ShowOrder组件在<router-link>其自己的页面上显示单个订单。

<template v-if="order ? order : error">
  <div class="order-container -shadow">
    <div class="order-number">
      <p>{{ order.orderId }}</p>
      <p>{{ order.daySelected }}</p>
      <p>{{ order.timeSelected }}</p>
    </div>
    <div class="customer-info">
      <h2>{{ order.userInfo.name }}</h2>
      <p>
        {{ order.userInfo.street }},
        {{ order.userInfo.city }}
      </p>
      <p v-if="order.userInfo.apt">
        {{ order.userInfo.apt }}
      </p>
      <p>{{ order.userInfo.phone }}</p>
         ...
         ...

          <router-link :to="{ name: 'ShowOrder', params: { id: order.orderId, order: order }}"
      >Show Details</router-link
    >
   </div> 
  </template>
<script>
export default {
  name: "Order",
  props: {
    order: {
      type: Object,
      default: function() {
        return {};
      }
    }
  },
  data() {
    return {
      error: "Error"
    };
  }
};
</script>

Order.spec.js的如下:

const localVue = createLocalVue();
localVue.use(VueRouter);
const router = new VueRouter();
const $route = {
  path: '"/show-order/:id"'
};

shallowMount(Order, {
  localVue,
  router,
  stubs: ["router-link", "router-view"]
});

const mockOrder = {
  orderId: 123,
  chocolateChip: 24,
  oatmeal: 0,
  campfire: 12,
  daySelected: "Wed Jan 27",
  timeSelected: "2:30 - 3:00",
  userInfo: {
    apt: "",
    city: "Port ",
    email: "[email protected]",
    street: " Point Road",
    phone: "(123)446-1980",
    name: "Mr.Smith"
  }
};

describe("Order.vue", () => {
  it("renders correctly", () => {
    const wrapper = shallowMount(Order, {
      localVue,
      propsData: {
        order: mockOrder,
        $route
      }
    });
    console.log(wrapper.html());
    expect(wrapper.element).toMatchSnapshot();
  });
});

我收到的错误如下所示:

 FAIL  tests/unit/Order.spec.js
  ● Test suite failed to run

    TypeError: Cannot read property 'name' of undefined

      72 |   flex-flow: column wrap;
      73 |   margin-top: 1em;
    > 74 |   transition: all 0.2s linear;
         |                                                             ^
      75 | }
      76 | 
      77 | .order-container:hover {

我什至无法进行快照测试。我在这里阅读了与此错误相关的许多其他类似问题,并尝试v-if在模板中等待组件加载之前的数据。这里发生了什么?如果这是一个对象错误,为什么在控制台中没有指向我的作用域CSS的指针order.userInfo.name

我也试着从改变created()Admin.vuemounted()

在中Order.vue,我尝试根据这些Vue文档添加对象以使其具有反应性

  data() {
    return {
      error: "Error",
      orderItem: {}
    };
  },
  mounted() {
    this.orderItem = Object.assign({}, this.order);
    console.log(this.orderItem, "line 65");
  }
东尼19

您要打shallowMount()两次电话:一次是在没有的情况下进行测试mockOrder(此调用是不必要的),另一次是在测试内部进行了调用mockOrder

// Order.spec.js
shallowMount(Order, { localVue }) // ❌ no props, but no need for this call

describe("Order.vue", () => {
  shallowMount(Order, {
    localVue,
    propsData: {
      order: mockOrder
    }
  })
})

第一次调用会导致错误,因为它order的属性默认为空对象,因此order.userInfoundefined导致错误order.userInfo.name

解决方法是删除对的不必要的首次调用shallowMount()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用 Jest 和 Enzyme 测试 React 组件。错误:无法读取地图的属性未定义

来自分类Dev

渲染错误:“ TypeError:无法读取未定义的属性'名称'”(Vue)

来自分类Dev

当Jest测试反应包括c3图表的组件时,“ TypeError:无法读取未定义的属性'prototype'”

来自分类Dev

TypeError:无法读取未定义的Jest测试的属性'params'-React Native

来自分类Dev

React Jest:TypeError:无法读取未定义的属性“ map”

来自分类Dev

角组件测试用例出现错误:类型错误:无法读取未定义的属性“ contractno”

来自分类Dev

错误无法读取带有样式化组件的React语义UI弹出窗口中未定义的属性“ left”

来自分类Dev

“类型错误:无法读取未定义的属性‘名称’”错误

来自分类Dev

玩笑测试Vue组件抛出错误“无法读取未定义的'键'...”

来自分类Dev

角度测试-TypeError:无法读取未定义的属性“ 7”

来自分类Dev

vue.js:属性或方法“”未定义,渲染错误:“TypeError:无法读取未定义的属性''”

来自分类Dev

TypeError:无法读取未定义的属性“名称”

来自分类Dev

Gatsby测试错误,TypeError:无法读取未定义的属性“当前”

来自分类Dev

单元测试 Angular 4 出现错误“TypeError:无法读取未定义的属性“订阅”

来自分类Dev

Angular 8错误TypeError:无法读取未定义的属性“名称”

来自分类Dev

Angular 9-错误TypeError:无法读取未定义的属性“名称”

来自分类Dev

discord bot错误TypeError:无法读取未定义的属性“名称”

来自分类Dev

错误TypeError:当我尝试添加产品时,无法读取未定义的属性“名称”

来自分类Dev

vue.js | TypeError:无法读取未定义的属性“ then”

来自分类Dev

“错误”:“消息”:“无法读取未定义的属性'名称'

来自分类Dev

带有TypeError的构造函数中的未定义数组:无法读取未定义的属性“ 0”

来自分类Dev

类型错误:无法读取未定义的属性“名称”类型错误:无法读取未定义的属性“名称”

来自分类Dev

NodeJS错误“ TypeError:无法读取未定义的属性” stdout”

来自分类Dev

错误TypeError:无法读取未定义的属性“匹配”

来自分类Dev

错误TypeError:无法读取未定义的属性“句柄”

来自分类Dev

错误TypeError:无法读取未定义的属性'__source'

来自分类Dev

错误TypeError:无法读取未定义的属性“调用”

来自分类Dev

reactjs错误:TypeError:无法读取未定义的属性“ props”

来自分类Dev

VueJs [Vue警告]:渲染错误:“ TypeError:无法读取未定义的属性'title'”

Related 相关文章

  1. 1

    使用 Jest 和 Enzyme 测试 React 组件。错误:无法读取地图的属性未定义

  2. 2

    渲染错误:“ TypeError:无法读取未定义的属性'名称'”(Vue)

  3. 3

    当Jest测试反应包括c3图表的组件时,“ TypeError:无法读取未定义的属性'prototype'”

  4. 4

    TypeError:无法读取未定义的Jest测试的属性'params'-React Native

  5. 5

    React Jest:TypeError:无法读取未定义的属性“ map”

  6. 6

    角组件测试用例出现错误:类型错误:无法读取未定义的属性“ contractno”

  7. 7

    错误无法读取带有样式化组件的React语义UI弹出窗口中未定义的属性“ left”

  8. 8

    “类型错误:无法读取未定义的属性‘名称’”错误

  9. 9

    玩笑测试Vue组件抛出错误“无法读取未定义的'键'...”

  10. 10

    角度测试-TypeError:无法读取未定义的属性“ 7”

  11. 11

    vue.js:属性或方法“”未定义,渲染错误:“TypeError:无法读取未定义的属性''”

  12. 12

    TypeError:无法读取未定义的属性“名称”

  13. 13

    Gatsby测试错误,TypeError:无法读取未定义的属性“当前”

  14. 14

    单元测试 Angular 4 出现错误“TypeError:无法读取未定义的属性“订阅”

  15. 15

    Angular 8错误TypeError:无法读取未定义的属性“名称”

  16. 16

    Angular 9-错误TypeError:无法读取未定义的属性“名称”

  17. 17

    discord bot错误TypeError:无法读取未定义的属性“名称”

  18. 18

    错误TypeError:当我尝试添加产品时,无法读取未定义的属性“名称”

  19. 19

    vue.js | TypeError:无法读取未定义的属性“ then”

  20. 20

    “错误”:“消息”:“无法读取未定义的属性'名称'

  21. 21

    带有TypeError的构造函数中的未定义数组:无法读取未定义的属性“ 0”

  22. 22

    类型错误:无法读取未定义的属性“名称”类型错误:无法读取未定义的属性“名称”

  23. 23

    NodeJS错误“ TypeError:无法读取未定义的属性” stdout”

  24. 24

    错误TypeError:无法读取未定义的属性“匹配”

  25. 25

    错误TypeError:无法读取未定义的属性“句柄”

  26. 26

    错误TypeError:无法读取未定义的属性'__source'

  27. 27

    错误TypeError:无法读取未定义的属性“调用”

  28. 28

    reactjs错误:TypeError:无法读取未定义的属性“ props”

  29. 29

    VueJs [Vue警告]:渲染错误:“ TypeError:无法读取未定义的属性'title'”

热门标签

归档