問題已解決,原因在於我用的環境是happy-dom
vue-test-utils和happy-dom看起來還有些相容問題
issues #513
改回jsdom就可以了
我想練習在我的vite專案上加測試,用的是官方的vue-test-utils和vitest
但馬上就出錯了,mount完的wrapper找不到class
因為是第一次做測試也不知道問題在那,請大大們幫忙
button.vue
<script setup lang="ts">
import { ref } from "vue";
const count = ref(0);
</script>
<template>
<button type="button" class="i-am-class" @click="count++">
count is: {{ count }}
</button>
</template>
button.spec.ts
import Button from "@/components/Button.vue";
import { mount } from "@vue/test-utils";
import { describe, test, expect } from "vitest";
describe("Button", () => {
test("btn class test", () => {
const wrapper = mount(Button);
const btn = wrapper.find("button");
expect(btn.classes()).toContain("i-am-class");
wrapper.unmount();
});
});
結果
有想過是不是vitest的問題,但換成jest還是一樣
也有想過是不是button根本就沒有抓到,但測試後是有的
console.log(btn.html());
大概就這樣,請幫幫忙,還缺什麼可以補