Skip to content

测试属性

建议

测试 UI 时, 需要查找某些元素则给元素添加测试专用的属性, 比如 data-test

vue
<template>
  <div>
    <div>List</div>
    <div v-for="item in items" :key="item" data-test="item">{{ item }}</div>
  </div>
</template>

<script setup lang="ts">
defineProps<{
  items: string[];
}>();
</script>
ts
describe("list 组件", () => {
  it("渲染列表", () => {
    const items = ["item1", "item2", "item3"];

    const wrapper = mount(List, {
      props: {
        items,
      },
    });

    const renderedItems = wrapper
      .findAll('[data-test="item"]')
      .map((item) => item.text());
    expect(renderedItems).toEqual(items);
  });
});

否则

通过 html 原生属性查找元素, 比如 class 会经常变更导致测试失败

示例

src/best-practices/ui-separation/ui-separation.test.ts