You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Cypress Vue组件测试Runner测试按钮点击触发emit事件失败如何解决

问题根因

你创建的cy.spy没有和组件抛出的clickButtonEvent自定义事件做绑定,组件触发emit时spy无法收到回调,该问题和你使用的PrimeVue按钮组件无关。

修复方案

在调用mount挂载组件时,通过props配置项传入和emit事件对应的回调即可,回调命名遵循on + 首字母大写的事件名的规则。另外注意你示例中测试代码挂载的FulfilButton和实际组件名MyButton不一致,需要修正为你实际使用的组件名。

修复后的测试代码如下:

// MyButton.spec.ts
it.only("should emit an event when clicked", () => {
  const clickButtonSpy = cy.spy().as("clickButtonEvent");

  mount(MyButton, { // 替换为你实际的组件名
    global: {
      components: {
        Button,
      },
    },
    // 新增props配置,绑定emit事件对应的回调
    props: {
      onClickButtonEvent: clickButtonSpy
    }
  })
  .get('[data-testid="button"]')
  .click();

  cy.get("@clickButtonEvent").should("have.been.called");
});

内容的提问来源于stack exchange,提问作者user4094935

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 11:54:04