如何测试一个Vue3组合体是否发出了正确的事件

nvbavucw  于 2023-06-24  发布在  Vue.js
关注(0)|答案(1)|浏览(121)

我有一个Vue 3组合函数,它返回一个函数,发出一个带有有效载荷的事件。我想用vitest单元测试在调用组合函数时是否发出事件,以及有效负载是否包含正确的数据。下面是一个可组合的示例:

interface Emits {
  (e: "customEvent", payload: number): void;
}

export function useDemo(emit: Emits) {
  function demoFunction() {
    emit("customEvent", 42);
  }

  return {
    demoFunction,
  };
}

我需要一种方法来测试通过调用demoFunction()是否会发出带有数据42的事件customEvent

cyej8jka

cyej8jka1#

由于emit的工作方式是可预测的,因此可以测试单元的实现,而不是它通过Vue事件产生的行为:

let emit = vi.fn();
let { demoFunction } = useDemo(emit);
demoFunction();
expect(emit).toBeCalledWith("customEvent", 42);

相关问题