Как я могу выполнить модульное тестирование onClick, если у него нет события щелчка мыши?

У меня есть функция onClick

    private onClick(e: React.MouseEvent<HTMLButtonElement>) {
        if (e) {
            this.props.log();
        }
    }

Как я могу протестировать с помощью шутки, фермента, если onClick имеет событие

it("should not log if has mouse event", () => {
    const onClickSpy = jest.fn();
    const logSpy = jest.fn();

    const props = {
        onClick: onClickSpy,
        log: logSpy,
    };
    const subject = mountProvider(ButtonWithLog, props);
    subject.find(ButtonWithLog).simulate("click"); // I needed without mouse event
    expect(logSpy).not.toHaveBeenCalled();
});

person Qwerty    schedule 19.06.2018    source источник


Ответы (1)


Вы можете передать параметры в функцию имитации, которая будет передана исполняющей функции.

const mockEvent = { target: {} };
subhect.find(...).simulate('click', mockEvent);

См. дополнительную информацию здесь: Передача объекта события ферменту .simulate.

person Adam    schedule 19.06.2018