如何测试window.addEventListener('storage', (storageEvent: StorageEvent) => { ..... })?
How to test window.addEventListener('storage', (storageEvent: StorageEvent) => { ..... })?
如何测试 adddEventListener?我正在尝试模拟 addEventListener 调用,但我什至无法用 jest
模拟调用
public checkChangeLocalStorage() {
window.addEventListener('storage', (storageEvent: StorageEvent) => {
this.checkAuthenticityLocalStorage(storageEvent)
})
}
我这样试过:
document.addEventListener = jest
.fn()
.mockImplementationOnce((event, callback) => {
callback()
})
service.checkChangeLocalStorage()
expect(document.addEventListener).toHaveBeenCalled()
错误:
expect(jest.fn()).toBeCalled()
Expected number of calls: >= 1
Received number of calls: 0
47 |
48 | service.checkChangeLocalStorage()
> 49 | expect(document.addEventListener).toHaveBeenCalled()
我是这样解决的:
window.addEventListener = jest
.fn()
.mockImplementationOnce((event, callback) => {
callback(returnMock)
})
service.checkChangeLocalStorage()
expect(window.addEventListener).toBeCalledWith('storage', expect.any(Function))
参考:https://www.codeguru.co.in/2021/02/testing-javascript-events-with-jest.html
如何测试 adddEventListener?我正在尝试模拟 addEventListener 调用,但我什至无法用 jest
模拟调用 public checkChangeLocalStorage() {
window.addEventListener('storage', (storageEvent: StorageEvent) => {
this.checkAuthenticityLocalStorage(storageEvent)
})
}
我这样试过:
document.addEventListener = jest
.fn()
.mockImplementationOnce((event, callback) => {
callback()
})
service.checkChangeLocalStorage()
expect(document.addEventListener).toHaveBeenCalled()
错误:
expect(jest.fn()).toBeCalled()
Expected number of calls: >= 1
Received number of calls: 0
47 |
48 | service.checkChangeLocalStorage()
> 49 | expect(document.addEventListener).toHaveBeenCalled()
我是这样解决的:
window.addEventListener = jest
.fn()
.mockImplementationOnce((event, callback) => {
callback(returnMock)
})
service.checkChangeLocalStorage()
expect(window.addEventListener).toBeCalledWith('storage', expect.any(Function))
参考:https://www.codeguru.co.in/2021/02/testing-javascript-events-with-jest.html