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);
});
});