iam*_*ynq 5 testing unit-testing reactjs enzyme next.js
我想测试页面在点击 div 后被重定向,但我不知道如何,这是我的代码。非常感谢
<div className="bellTest">
<NextLink href="/notifications">
<Bell />
</NextLink>
</div>
Run Code Online (Sandbox Code Playgroud)
测试.tsx
jest.mock('next/link', () => {
return ({ children }) => {
return children;
};
});
describe('Test of <HeaderContainer>', () => {
test('Test the page redirect after click', async done => {
const wrapper = mount( <HeaderComponent /> );
await wrapper
.find('.bellTest')
.at(0)
.simulate('click');
// expect the page getting redirect
});
});
Run Code Online (Sandbox Code Playgroud)
next/link
您可以在路由器事件上注册一个间谍,并检查它是否被调用,而不是嘲笑。
测试将如下所示:
import Router from 'next/router';
describe('Test of <HeaderContainer>', () => {
const spies: any = {};
beforeEach(() => {
spies.routerChangeStart = jest.fn();
Router.events.on('routeChangeStart', spies.routerChangeStart);
});
afterEach(() => {
Router.events.off('routeChangeStart', spies.routerChangeStart);
});
test('Test the page redirect after click', async done => {
const wrapper = mount(<HeaderComponent />);
await wrapper
.find('.bellTest')
.at(0)
.simulate('click');
expect(spies.routerChangeStart).toHaveBeenCalledWith('expect-url-here');
});
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3707 次 |
最近记录: |