render () не вызывается, пока setState получает вызов из тестового класса? - PullRequest
0 голосов
/ 10 сентября 2018

Предположим, что есть класс компонента с методами handleCloseEvent () и render (). handleCloseEvent () изменяет данные в объекте состояния, используя this.setState.

Из класса тестирования компонент монтируется перед запуском любого теста и демонтируется после метода тестирования. Из одного из тестовых методов handleCloseEvent вызывается с использованием «page.instance (). SetState ({})». Render не получает вызов по вызову handleCloseEvent из класса модульного теста. Пожалуйста, помогите мне исправить это.

class DropdownList extends React.Component { 
     ......
     ......
     ......
     handleCloseEvent() {
         this.setState({
            x: null
         });
     }
     .........
     .........
     .........
     .........
     render() {
        return (
           <div class={`${!this.state.x ? "hidden" : ""}`>
           </div>
        );
     }
}


describe("Component: DropdownList", () => {
   it("Checking render", () => {
        page = intlHelper.mountWithIntlWithoutRelay(<DropdownList dropdownStore={dropdownStore} onAddItem={handleAddRemoveDrodownItemSpy} onRemoveItem={handleAddRemoveDrodownItemSpy}/>);
        page.instance().handleCloseEvent();
        expect(page.find(".hidden").props().show).to.be.true;
    });
}
...