期望调用某个函数



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

事实上,我确实有一些令人惊叹的代码,但这似乎很奇怪。

test('on change should be invoked when deleting', async () => {
expect.assertions(1);
someTestThing.onChange.sub(() => expect(true).toBe(true));
await someTestThing.delete(TEST_ID);
});

我指的是expect(true).toBe(true)部分看起来不对。

编辑:

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

test('on change should be invoked when deleting', async () => {
const cb = jest.fn();
someTestThing.onChange.sub(cb);
await someTestThing.delete(TEST_ID);
expect(cb.mock.calls.length).toBe(1);
});

使用Jest的toHaveBeenCalled断言。

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();
})

文档

最新更新