首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何设置与MemoryRouter和Jest匹配的路径?(不是位置或历史)

在React应用中,可以使用MemoryRouter来模拟路由的行为,而Jest是一个常用的JavaScript测试框架。要设置与MemoryRouter和Jest匹配的路径,可以按照以下步骤进行操作:

  1. 首先,确保你的React应用中已经安装了react-router-dom和react-router-test-renderer这两个包。可以使用以下命令进行安装:
代码语言:txt
复制
npm install react-router-dom react-router-test-renderer
  1. 在需要进行路径匹配的测试文件中,引入所需的依赖:
代码语言:txt
复制
import { MemoryRouter } from 'react-router-dom';
import { create } from 'react-test-renderer';
  1. 在测试用例中,使用MemoryRouter包裹需要测试的组件,并设置initialEntries属性来指定初始路径。例如,假设我们要测试的组件是App,初始路径为'/home',可以这样编写测试代码:
代码语言:txt
复制
test('should match path with MemoryRouter and Jest', () => {
  const component = create(
    <MemoryRouter initialEntries={['/home']}>
      <App />
    </MemoryRouter>
  );
  // 进行断言或其他测试操作
});
  1. 在测试代码中,可以使用Jest提供的断言方法来验证路径是否匹配。例如,可以使用toMatchObject方法来断言当前路径是否与指定路径匹配:
代码语言:txt
复制
expect(component.toJSON().props).toMatchObject({
  location: expect.objectContaining({
    pathname: '/home'
  })
});

这样,你就可以设置与MemoryRouter和Jest匹配的路径,并进行相应的测试了。

关于MemoryRouter和Jest的更多信息,你可以参考以下链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 TypeScript 编写 React.js 应用 | 笔记

它是 CSS 超集,这意味着所有有效 CSS 也是有效 SCSS。 缩进语法 ( .sass ) 更不寻常:它使用缩进而不是大括号来嵌套语句,并使用换行符而不是分号来分隔它们。...yarn add sass 安装 mini.css 包, Mini.css is a 最小, 响应式, 样式无关 CSS 框架....路由 ProjectsPage 显示 单击任何项目卡片中名称描述 验证你是否被带到 /projects/1 路由,并且 ProjectPage 显示 ProjectDetail 组件 image... ,用于将“URL”历史记录保存在内存中(不读取写入地址栏)。...如果您有 CI 设置,请运行以下命令作为其中一部分,以确保每个人都运行更漂亮。这避免了合并冲突其他协作问题! --check 类似于 --write ,但仅检查文件是否已格式化,而不是覆盖它们。

86990
  • React Router初学者入门指南(2023版)

    它是历史堆栈中顶级URL,以及React Router如何动态更改显示内容以匹配正确URL。 在一些浏览器中,比如Chrome,你可以点击并长按“返回”按钮来查看历史记录中所有的URL列表。...它负责检查当前URL位置,并将其子 Route 组件中指定路径进行比较,以找到匹配项。...该 /eras 路由 Eras 组件相关联。这意味着每当URL路径 /eras 匹配时,将显示 内容。...动态路由useParams 动态路由是一个概念,它允许您创建不是硬编码路由,而是根据用户操作数据生成路由。...每个路由对象都有一个 path element 属性,用于指定路径和在路由匹配时应该渲染组件。 所以,在 useRoutes 钩子 Routes Route 组件之间选择归结为个人偏好。

    56931

    Jest + React Testing Library 单测总结

    整个流程写法也不是特别难,所以就理所当然地觉得,写测试也不是特别难。 加上之前实际工作中,也没有太多写测试经历,所以当自己需要对组件库补充单元测试时候,发现并不能照葫芦画瓢来写单测。...一时不知道该如何下手,也不知道如何编写有效单测,人有点懵,于是就比较粗略地研究了一下前端组件单测。...测试框架 UI 组件测试工具之间并不是相互依赖、非此即彼,而是可以根据不同工具性质做不同搭配。...如果想要看如何安装 Jest,可以参考:Jest 上手。 Jest 常用配置项在根目录中 jest.config.js 中,常用配置可以参考:Jest 配置文件。...cancelBubble 设置返回事件是否应该向上层级进行传播。 cancelable 返回事件是否可以阻止其默认操作。

    4.6K20

    万字详文:彻底搞懂 Jest 单元测试框架

    什么是Jest 测试意味着什么 我怎么知道要测试什么 测试块,断言和匹配如何实现测试块 如何实现断言和匹配器 CLI 配置 模拟 怎么模拟一个函数 执行环境 作用域隔离 V8 虚拟机 运行单测回调...,但 Jest如何工作我们可能还很陌生,那让我们一起走进 Jest 内心,一同探究单元测试引擎是如何工作。...怎么模拟一个函数 接下来我们就要研究一下如何实现,首先是 jest.mock,它第一个参数接受是模块名或者模块路径,第二个参数是该模块对外暴露方法具体实现 const jest = { mock...Jest 测试框架核心部分,以上部分基本实现了测试块、断言、匹配器、CLI配置、函数模拟、使用虚拟机及作用域生命周期钩子函数等,我们可以在此基础上,丰富断言方法,匹配支持参数配置,当然实际 Jest...这里顺便提一下引入 jest 引入模块原理思路,这里先会 require.resolve(moduleName) 找到模块路径,并把路径存到配置里面,然后使用工具库 packages/jest-util

    7.8K20

    学习笔记——在vue中如何配置Jest(一)

    最近在搞Jest单元测试,如何在vue中安装使用jest我就不说了,前一篇文章简单说了一下在使用jest时遇到一些问题,但是我觉得并没有真正解决很好。...所以,我想在这篇文章中,整理记录一下jest配置参数用法等。   jest配置文件是单独生成在unit文件夹下一个独立文件,并没有vue-cli生成webpack构建环境相关联。...collectCoverageFrom:为数组中匹配文件收集覆盖率信息,即使并没有为该文件写相关测试代码,需要将collectCoverage设置为true,或者通过--corverage参数来调用...这样我们就解释完了基础配置参数,学习过后,我们对jest配置有了一个基本了解。但是要想写单元测试文件,还是远远不够。下一篇文章,我会介绍如何在为vue单文件组件写测试用例。...并且解释说明一下我在使用jest时候一个疑问,什么是localVue,shallowMountmountlocalVue区别是啥?localVueVue区别是啥?

    1.8K10

    Jest来给React完成一次妙不可言~单元测试

    假设您希望重构组件,因为您希望能够设置任何count值。因此,您可以删除递增递减方法,然后添加一个新setCount方法。...•getByText:搜索具有文本节点所有元素,其中textContent作为参数传递给定文本匹配。•getByTitle:返回具有作为参数传递给定文本匹配title属性元素。...一个特定查询有很多变体: •getBy:返回查询第一个匹配节点,如果没有匹配元素找到多个匹配,则抛出一个错误。...(CV也是可以?) 1.如何创建测试快照 快照,顾名思义,允许我们保存给定组件快照。当您进行更新重构,并希望获取比较更改时,它会提供很多帮助。 现在,让我们看一下 App.js 文件快照。...最后,确保App组件片段快照匹配

    14.9K33

    学习笔记——在vue中如何配置Jest(一)

    最近在搞Jest单元测试,如何在vue中安装使用jest我就不说了,前一篇文章简单说了一下在使用jest时遇到一些问题,但是我觉得并没有真正解决很好。...所以,我想在这篇文章中,整理记录一下jest配置参数用法等。   jest配置文件是单独生成在unit文件夹下一个独立文件,并没有vue-cli生成webpack构建环境相关联。...collectCoverageFrom:为数组中匹配文件收集覆盖率信息,即使并没有为该文件写相关测试代码,需要将collectCoverage设置为true,或者通过–corverage参数来调用jest...这样我们就解释完了基础配置参数,学习过后,我们对jest配置有了一个基本了解。但是要想写单元测试文件,还是远远不够。下一篇文章,我会介绍如何在为vue单文件组件写测试用例。...并且解释说明一下我在使用jest时候一个疑问,什么是localVue,shallowMountmountlocalVue区别是啥?localVueVue区别是啥?

    2K30

    那些年错过React组件单元测试(上)

    文章内容力求深入浅出,浅显易懂~ “介于内容全部收在一篇会太长,计划分为两篇,本篇是第一篇,主要介绍如何快速上手jest以及在实战中常用功能及api ?...moduleDirectories: 模块搜索路径 moduleFileExtensions:代表支持加载文件名 testPathIgnorePatterns:用正则来匹配不用测试文件 setupFilesAfterEnv...(value): toBeUndefined 相反 toBeTruthy(value):匹配任何语句为真的值 toBeFalsy(value):匹配任何语句为假值 toBeGreaterThan(number...expect(mockFn).toHaveBeenCalledWith('厦门','青岛','三亚'); }) jest.fn()所创建mock函数还可以设置返回值,定义内部实现返回Promise...总结 到这里,关于前端单元测试一些基础背景Jest基础api就介绍完了,在下一篇文章中,我会结合项目中一个React组件来讲解如何做组件单元测试。 ?

    5K20

    提高代码质量——使用JestSinon给已有的代码添加单元测试

    现在,我们可以使用单元测试来提高自己代码质量。下面,我将自己在使用JestSinon.js配置编写单元测试中收获经验踩到坑进行总结,根据从零开始配置编写单元测试这一条线来进行分享。...通过本文,你可以解决以下问题: JestSinon.js是什么? 如何配置JestSinon.js,从而编写单元测试? 如何解决进行单元测试中遇到常见问题?...而对于其他测试框架如:Mocha或者Chai等,没有进行具体了解,因此在这里不多做评价。 如何配置JestSinon.js,从而编写单元测试?...编写单元测试 在本章中,我们会针对如何编写单元测试文件进行一个具体讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到JestSinon.jsAPI会进行简单介绍...在本章中,我们总结了如下问题来进行介绍,希望大家再遇到相同问题时能够快速解决: 如何统计Jest单元测试覆盖率 如何设置单元测试文件不使用本地babel配置 如何设置单元测试文件使用本地babel配置

    3.8K00

    干货 | 携程租车React Native单元测试实践

    有以下几个特点: 简单易用:易配置,自带断言库mock库。 快照测试:能够创造一个当前组件渲染快照,通过上次保存快照进行比较,如果两者不匹配说明测试失败。...1.2 Enzyme Enzyme是AirBnb开源React测试工具库,通过一套简洁api,可以渲染一个多个组件,查找元素,模拟元素交互(如点击,触摸),通过Jest相互配合可以提供完整...null * toBeUndefined:匹配 undefined * toBeDefined: toBeUndefined 相反 * toBeTruthy:匹配真 * toBeFalsy:匹配假...('InteractionManager'); 六、Jest UI快照测试 Jest提供了snapshot快照功能用于UI测试,可以创建组件渲染快照并将其以前保存快照进行比较,如果两者不匹配,则测试失败...快照将在测试文件的当前文件路径自动生成snapshots文件夹中保存。当主动修改造成ui变化时,使用jest -u来更新快照。

    6.1K30

    从 0 开始手把手带你搭建一套规范 Vue3.x 工程化项目

    本项目先做一些简单配置,例如:设置 @ 指向 src 目录、 服务启动端口、打包路径、代理等。...假如这是一个历史项目,我们在中途配置了 ESLint 规则,那么在提交代码时,也会对其他未修改历史”文件都进行检查,可能会造成大量文件出现 ESLint 错误,显然不是我们想要结果。...也可以不设置此项,把后面的 allowCustomScopes 设置为 true ['custom', '以上都不是?...转换 "^.+\\.ts$": "ts-jest", // ts 文件用 ts-jest 转换 }, // 匹配 __tests__ 目录下 .js/.ts 文件 其他目录下 xx.test.js...(ts)$", }; 创建单元测试文件 在上面的 jest.config.js 文件中,我们配置只匹配 __tests__ 目录下任意 .ts 文件其他目录下 xx.test.ts/xx.spec.ts

    6.3K62
    领券