酶输入模拟无法正常工作

时间:2020-08-13 06:21:29

标签: enzyme simulate

我有一个要测试的React组件:

import React, { useEffect, useRef } from 'react';
import { Form, FormControlProps } from 'react-bootstrap';
import inputmask, { Options } from 'inputmask';

const Inputmask = (props) => {
    const { mask, maskPlaceholder, ...formControlProps } = props;

    const inputElement = useRef<HTMLInputElement>();

    useEffect(() => {
        const opts: Options = {
            placeholder: maskPlaceholder
        };
        const im = new inputmask(mask, opts);
        if (inputElement.current) {
            im.mask(inputElement.current);
        }
    }, []);

    return (
        <Form.Control
            type="text"
            ref={inputElement}
            {...formControlProps}
        />
    );
}

export default VtbInputmask;

这是我的考验

import React from 'react';
import { mount } from 'enzyme';
import Inputmask from './Inputmask';

const wrapper = mount(<Inputmask mask="9" maskPlaceholder="*" />);
const input = wrapper.find('input');

describe('<Inputmask /> Tests', () => {

it('When hovering over the input, a mask should appear', () => {
    input.simulate('mouseleave');
    expect(input.props()).toHaveProperty('placeholder');
    expect(input.props().placeholder).toBe('*');

    // theoretical testing of keyPress events
    input.simulate('focus');
    input.simulate('keyDown', {keyCode: 49}); // enter 1
    console.log(input.props())
    expect(input.props().value).toBe('1');
});

});

但是测试不起作用。 error test

显然,模拟存在一些问题(我在console.log的帮助下进行了检查)。如何解决?

0 个答案:

没有答案