我无法确定如何对 Vue 组件进行简单测试(使用赛普拉斯组件测试运行程序)以查看按钮单击是否导致事件被发出
// MyButton.vue component
<template>
<Button
data-testid="button"
label="Click Button"
@click="clickButton()"
/>
</template>
<script setup lang="ts">
import { defineEmits } from "vue";
const emit = defineEmits(["clickButtonEvent"]);
function clickButton() {
emit("clickButtonEvent");
}
</script>
// MyButton.spec.ts
it.only("should emit an even when clicked", () => {
const clickButtonSpy = cy.spy().as("clickButtonEvent");
mount(FulfilButton, {
global: {
components: {
Button,
},
},
})
.get('[data-testid="button"]')
.click();
cy.get("@clickButtonEvent").should("have.been.called");
});
这不起作用 - 在我看到的控制台中
mount
get
-click
但然后这个:
expect clickButtonEvent to have been called at least once, but it was never called
所以我想我没有cy.spy
正确连接这个 - 大概是因为我没有将它作为安装的一部分?我需要做什么?按钮本身是 PrimeVue 按钮组件,但我很确定这不会阻止我进行此测试?