setState从测试类获取调用时是否未调用render()?

时间:2018-09-10 10:46:56

标签: reactjs react-redux reactive-programming

假设存在带有handleCloseEvent()和render()方法的组件类。 handleCloseEvent()使用this.setState更改状态对象中的数据。

从测试类中,组件在任何测试运行之前安装,在测试方法之后卸载。从一种测试方法中,使用“ page.instance()。setState({})”来调用handleCloseEvent。 渲染未从单元测试类调用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;
    });
}

0 个答案:

没有答案