📜  jest test navlink - Javascript (1)

📅  最后修改于: 2023-12-03 15:32:06.845000             🧑  作者: Mango

使用Jest测试NavLink

概述

NavLink是一个在React Router中非常有用的组件,它可用于获取当前URL并在应用程序中设置样式和活动状态。本文将介绍如何使用Jest测试NavLink组件。

准备工作

在开始测试之前,需要安装以下依赖项:

  • react
  • react-dom
  • react-router-dom
  • jest
  • enzyme
  • enzyme-adapter-react-16

你可以使用npm或yarn安装它们。例如,使用npm安装命令:

npm install react react-dom react-router-dom jest enzyme enzyme-adapter-react-16 --save-dev
编写测试

首先,创建一个文件navlink.test.js。这是我们的测试文件。

import React from 'react';
import { mount } from 'enzyme';
import { NavLink } from 'react-router-dom';

it('renders correctly', () => {
  const wrapper = mount(<NavLink to="/home">Home</NavLink>);
  expect(wrapper).toMatchSnapshot();
});

it('sets active class on active link', () => {
  const wrapper = mount(
    <NavLink to="/home" activeClassName="active">
      Home
    </NavLink>
  );

  expect(wrapper.find('.active')).toHaveLength(0);

  wrapper.setProps({ location: { pathname: '/home' } });

  expect(wrapper.find('.active')).toHaveLength(1);
});

以上代码中,我们使用了mount方法来渲染NavLink组件。在第一个测试中,我们使用了toMatchSnapshot方法来对组件进行快照测试,以检查渲染是否按预期进行。

在第二个测试中,我们检查了当NavLink处于活动状态时,它能否正确设置activeClassName样式类。

Jest将根据我们所编写的测试来告知我们测试结果。如果出现错误,Jest将输出错误消息,以帮助我们定位问题并解决它们。

运行测试

完成代码的编写后,我们可以使用以下命令来运行测试:

npm test

或者

yarn test

运行测试后,Jest将显示测试结果。如果所有测试都通过,则说明我们的测试已经顺利完成了。

结论

在本文中,我们介绍了如何使用Jest测试NavLink组件。通过使用Jest和Enzyme,我们可以编写高效有用的测试用例来保证应用程序的正确性。