Я реализовал простой UncontrolledTooltip
из reactstrap
.Документ (https://reactstrap.github.io/components/tooltips/) говорит, что
неконтролируемый компонент может обеспечить требуемую функциональность без необходимости управлять / контролировать состояние компонента
Если я хочуреализовать модульный тест (например, jest + enzyme
) для проверки его состояния как открытого или закрытого, как я могу создать модульный тест без ручного изменения значения состояния? Возможно ли это достичь? Кажется, это возможно только при обычном Tooltip
компонент, но я хотел бы услышать совет от опытных инженеров.
[Обновление]:
По запросу я включаю сюда всплывающую подсказку и юнит-тест, который я пытаюсь выполнить. В настоящее время я хочусмоделируйте hover
на всплывающей подсказке, однако mockHover.mock.calls.length
вернет значение 0
, которое я интерпретирую, поскольку фиктивная функция не сработала.
Вот моя подсказка.
import React from 'react';
import { UncontrolledTooltip } from 'reactstrap';
export default class MyTooltip extends React.Component {
render() {
const { metaData, wg } = this.props;
return (
<div>
<UncontrolledTooltip placement="bottom" trigger={'hover'} target={wg}>
{metaData}
</UncontrolledTooltip>
</div>
);
}
}
Вот мой блоктест, который использует jest and enzyme
:
describe('<MyTooltip />', () => {
it('Tooltip unit test', () => {
const mockHover = jest.fn();
const wrapper = shallow(<MyTooltip trigger={mockHover} />);
expect(wrapper.find(UncontrolledTooltip));
wrapper.find(UncontrolledTooltip).simulate('hover');
expect(mockHover.mock.calls.length).toEqual(1);
});
});