Unit testing 模拟事件的jest单元测试

Unit testing 模拟事件的jest单元测试,unit-testing,enzyme,jestjs,Unit Testing,Enzyme,Jestjs,我有一个实用程序文件,用于确定enter键并触发文档中所有按钮类型submit的单击事件 我需要帮助来模拟enter键的向下键和submit类型的模拟按钮,以便触发它们的单击 我用玩笑和酶来测试 以下是实用程序代码: const runSubmitEventListener = () => { document.onkeydown = (e) => { e = e || window.event; if(e.key && e.k

我有一个实用程序文件,用于确定enter键并触发文档中所有按钮类型submit的单击事件

我需要帮助来模拟enter键的向下键和submit类型的模拟按钮,以便触发它们的单击

我用玩笑和酶来测试

以下是实用程序代码:

const runSubmitEventListener = () => {
    document.onkeydown = (e) => {
        e = e || window.event;
        if(e.key && e.key.toLowerCase() === 'enter'){
            document.querySelector('button[type="submit"]') && document.querySelectorAll('button[type="submit"]').click();
        }
    }
}

export default{
    runSubmitEventListener
}
另外,我们已经开始编写测试用例,下面是文件。请建议进一步的步骤,因为我不熟悉单元测试

import events from './events';

describe('events utility', () => {
    it('should have runSubmitEventListener to be defined', () => {
        expect(events.runSubmitEventListener).toBeDefined();
    });
    it('should trigger click of button type submit on keydown enter key', () => {
        const event = new keyBoardEvent('keydown', {'key': 'enter', 'keycode': 13});
        document.dispatchEvent(event);
        // expect(events.runSubmitEventListener).toHaveBeenCalled();
    });
});