做了个面试题:使用TDD思想,用vue3集成自己手写的event bus。

一些集成的就比较简单就不介绍了,直接看单测

import { EventBus } from "../plugin/EventBus";
const bus = new EventBus();

describe("实现:事件车(发布订阅模式)", () => {

  it("event bus on", () => {
    const muckFn = jest.fn();
    bus.on("event one", muckFn);
    expect(bus.eventsMap.size).toBe(1)
  });
  // 事件监听 on这个功能 使用muck一个fn 看bus.eventMap这个集合中的 数量 是否放入中了

  it("event bus emit", () => {
    const muckFn = jest.fn();
    bus.on("event one", muckFn);
    bus.emit("event one", '1111111111111111111');
    bus.emit("event one", '2222222222222222222');
    bus.emit("event one", '3333333333333333333');
    expect(muckFn).toBeCalledTimes(3)
  });

  // 发送事件 看muck的fn调用次数 是不是三次

  it("event bus off", () => {
    const muckFn = jest.fn();
    bus.on("event one", muckFn);
    bus.emit("event one", '1111111111111111111');
    bus.off("event one", muckFn);
    bus.emit("event one", '1111111111111111111');
    expect(muckFn).toBeCalledTimes(1)
  });

  // 主要是看off之后是否函数继续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值