admin管理员组文章数量:1334342
I have defined setState
in my function. The function setting the function is called by another function as follows :
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);
}
}
The function pageChanged(page)
is called upon click
.
onClick={this.pageChanged(page)}
I have tried writing many tests using sinon.spy
but without success. Any help on how to proceed with the test.
I have defined setState
in my function. The function setting the function is called by another function as follows :
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);
}
}
The function pageChanged(page)
is called upon click
.
onClick={this.pageChanged(page)}
I have tried writing many tests using sinon.spy
but without success. Any help on how to proceed with the test.
1 Answer
Reset to default 3 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);
});
});
本文标签: javascriptJest unit testingtest setState()Stack Overflow
版权声明:本文标题:javascript - Jest unit testing - test setState() - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742346621a2457652.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论