Попытка протестировать эту функцию в классе 'Nav', моя цель - протестировать маршрутизатор или, что более важно, получить покрытие на Router.push (/)
<AppBar className={classes.appBar} position="static">
<Toolbar className={classes.toolbar}>
{authenticated && this.state.layoutMode ==='desktop' ? (
<Grid container
direction ="row"
justify="flex-end"
alignItems="center">
<div className={classes.root}>
<Tabs id="Tab" className = {classes.tabBar} value={value} onChange={this.handleChange}>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
<Tab label="example" alt="example" onClick={() => Router.push('/example')}/>
</Tabs>
</div>
</Grid>
) : (
authenticated && <BurgerMenu/>
)}
Мой тест до сих пор выглядит следующим образом
describe('Test for navigation', () => {
let sandbox;
beforeAll(() => {
sandbox = sinon.createSandbox();
});
afterEach(() => {
sandbox.restore();
});
it('should render with data', () => {
const stub = jest.fn();
sandbox.stub(Router, 'push').callsFake(stub);
const wrapper = shallow(<Nav authenticated />);
expect(wrapper).toMatchSnapshot();
expect(stub.mock.calls.length).toBe(0);
wrapper.find(AppBar).props().onClick('test');
expect(stub.mock.calls.length).toBe(7);
});
});
Несмотря на то, что я столкнулся с проблемой, я не могу найти опору 'AppBar'. Я импортировал Nav в тест, но ошибка показывает: «Метод"props" предназначен для запуска на 1 узле. Вместо 0 найдено "Есть идеи?