Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jest单元测试-测试设置状态()_Javascript_Reactjs_Unit Testing_Jestjs - Fatal编程技术网

Javascript Jest单元测试-测试设置状态()

Javascript Jest单元测试-测试设置状态(),javascript,reactjs,unit-testing,jestjs,Javascript,Reactjs,Unit Testing,Jestjs,我已在函数中定义了setState。设置该函数的函数由另一个函数调用,如下所示: pageChanged(page) { this.setPage(page, false); } setPage(page, isLoading) { var pager = this.state.pager; var totalItems = this.props.totalItems; if (page < 1 ||

我已在函数中定义了
setState
。设置该函数的函数由另一个函数调用,如下所示:

    pageChanged(page) {
      this.setPage(page, false);

    }

    setPage(page, isLoading) {
        var pager = this.state.pager;
        var totalItems = this.props.totalItems;

        if (page < 1 || page > pager.totalPages) {
            return null;
        }

        pager = this.getPager(totalItems, page, 6);

        this.setState({ pager: pager });

        if(!isLoading){ 
            this.props.onChangePage(pager.startIndex);
        }
    }
pageChanged(第页){
此.setPage(第页,false);
}
设置页面(第页,正在加载){
var pager=this.state.pager;
var totalItems=this.props.totalItems;
如果(第<1页| |页>寻呼机总页数){
返回null;
}
pager=this.getPager(totalItems,第6页);
this.setState({pager:pager});
如果(!isLoading){
this.props.onChangePage(pager.startIndex);
}
}
调用函数
pageChanged(page)
,单击

onClick={this.pageChanged(page)}

我尝试过使用
sinon.spy
编写许多测试,但都没有成功。关于如何进行测试的任何帮助

description('pageChanged',()=>{
  describe('pageChanged', () => {
    it('expect to call setPage', () => {
      const wrapper = shallow(<YourComponent />);
      const page = 'test';
      wrapper.instance().setPage = jest.fn(); // mock `setPage` method
      wrapper.instance().pageChanged(page);

      expect(wrapper.instance().setPage).toHaveBeenCalledWith(page, false);
    });
  });

  describe('setPage', () => {
    it('expect to change state', () => {
      const wrapper = shallow(<YourComponent />);
      const page = 'test';
      const pager = '?page=test'
      wrapper.instance().getPager = () => pager; // mock `getPager` method
      // it also can be mocked using jest.fn():
      // wrapper.instance().getPager = jest.fn().mockReturnValue(pager);
      wrapper.instance().setPage(page);

      expect(wrapper.state.pager).toBe(pager);
    });
  });
它('expect to call setPage',()=>{ 常量包装器=浅(); 常量页='测试'; wrapper.instance().setPage=jest.fn();//mock`setPage`方法 wrapper.instance().pageChanged(第页); expect(wrapper.instance().setPage).toHaveBeenCalledWith(page,false); }); }); 描述('setPage',()=>{ 它('期望改变状态',()=>{ 常量包装器=浅(); 常量页='测试'; 常量分页器='?分页=测试' wrapper.instance().getPager=()=>pager;//mock`getPager`方法 //也可以使用jest.fn()对其进行模拟: //wrapper.instance().getPager=jest.fn().mockReturnValue(pager); wrapper.instance().setPage(第页); expect(wrapper.state.pager).toBe(pager); }); });