реагировать на событие компонента тестирования - PullRequest
0 голосов
/ 20 декабря 2018

У меня есть следующий компонент реагирования (.jsx)

@observable isVisible = true;
handleVisibility() {
    this.isVisible = !this.isVisible;
}

render() {
    return <div
        ...
        onMouseEnter={event => this.handleVisibility(event)}
        onMouseLeave={event => this.handleVisibility(event)}
    </div>;
}
ComponentListElement.propTypes = {
    componentName: PropTypes.string.isRequired,
    id: PropTypes.string.isRequired,
};
ComponentListElement.wrappedComponent.propTypes = {
    schema: PropTypes.object.isRequired,
};

Я пытаюсь создать тест, чтобы увидеть, вызываются ли обработчики событий onMouseEnter и onMouseLeave.Я пробовал дюжину способов, но ничего не работает.Наиболее распространенный метод, который я нашел в Интернете, чтобы сделать это, был такой:

    // Init
    const handleVisibility = sinon.spy();

    // Action
    const wrapper = mount(<Provider schema={mockSchema}>
        <ComponentListElement
            componentName="ComponentName1"
            id="1"
            onMouseLeave={handleVisibility}/>
    </Provider>);
    wrapper.find("div.my-element").at(0).simulate("mouseLeave");

    // Test
    expect(handleVisibility.callCount).to.be.equal(1);

, но он также не работает ... даже при том, что логика этого кажется полностью здоровой.Есть мысли о том, как заставить это работать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...