Typescript 期望调用某个函数

Typescript 期望调用某个函数,typescript,jestjs,Typescript,Jestjs,我有一个onChange侦听器,我想确保该侦听器被调用 我确实有一些代码可以工作,但看起来很奇怪 test('删除时应调用更改时',async()=>{ 期望.断言(1); someTestThing.onChange.sub(()=>expect(true).toBe(true)); 等待测试。删除(测试ID); }); 我指的是expect(true).toBe(true)部分似乎不正确 编辑: 我想我也可以这样做,这看起来有点合理,实际上我很喜欢: test('删除时应调用更改时',as

我有一个
onChange
侦听器,我想确保该侦听器被调用

我确实有一些代码可以工作,但看起来很奇怪

test('删除时应调用更改时',async()=>{
期望.断言(1);
someTestThing.onChange.sub(()=>expect(true).toBe(true));
等待测试。删除(测试ID);
});
我指的是
expect(true).toBe(true)
部分似乎不正确

编辑: 我想我也可以这样做,这看起来有点合理,实际上我很喜欢:

test('删除时应调用更改时',async()=>{
const cb=jest.fn();
someTestThing.onChange.sub(cb);
等待测试。删除(测试ID);
expect(cb.mock.calls.length).toBe(1);
});

使用Jest的
进行调用
断言

const someTestThing = {
  onChange: (event: Event) => console.log(event),
  delete: async (id: string) => console.log(id)
}

it('on change should be invoked when deleting', async () => {
  const mock = jest.fn(someTestThing.onChange);

  mock(new CustomEvent('Foo'));
  await someTestThing.delete('1')

  expect(mock).toHaveBeenCalled();
})

使用Jest的
来调用
断言

const someTestThing = {
  onChange: (event: Event) => console.log(event),
  delete: async (id: string) => console.log(id)
}

it('on change should be invoked when deleting', async () => {
  const mock = jest.fn(someTestThing.onChange);

  mock(new CustomEvent('Foo'));
  await someTestThing.delete('1')

  expect(mock).toHaveBeenCalled();
})

我的意思是我知道你在说什么,但是你在这里手动调用bock,当然它会被调用。我的意思是我知道你在说什么,但是你在这里手动调用bock,当然它会被调用。