我有一个要测试的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的帮助下进行了检查)。如何解决?