首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

【送红宝书】JavaScript 测试系列实战(四):掌握 React Hooks 测试技巧

它提供了一系列专门用于测试 Hook 的工具函数,能够模拟在真实组件中使用 Hooks。...Hook 的工作方式;act 函数同样接受一个函数执行一系列同步操作 注意 如果不使用 act 函数,而是直接将操作写在用例中,Jest 会抛出警告,并且可能会遇到一些棘手的边界情况。...注意 在编写 Jest 异步测试用例,如果涉及到 Promise 的使用(包括 async/await ),要确保 return 一个值,否则测试会超时。详细介绍请参考 Jest 异步测试文档。...至于怎么用 Mock 来写,就留给作业给你吧~ 测试 Redux + Hooks 在规模较大的应用中,我们通常会使用一个状态管理库来解决复杂的数据流问题,而最受欢迎的选择无疑是 Redux。.../reducers'; const store = createStore(rootReducer); export default store; 用 Redux 重写 useModalManagement

2.1K00

React + Redux Testing Library 单元测试

Stub 用于模拟特定行为 const mockFn = jest.fn(); mockFn(); expect(mockFn).toHaveBeenCalled(); // With a mock...image.png Redux 背后的基本思想 所以说, Redux 就是把组件的共享状态 “state” 抽取出来,以一个全局 “store” 的单例模式统一管理。...store 的交互 前面我们讲完了 Redux 单元测试所需要的基本知识,而 React 组件需要从 Redux store 读取状态或者是发送 action 改变 store 状态的时候,又该如何测试他们之间的交互呢...store 长什么样子,我们只需要知道 Redux store 当中的这些 action 将会在适当的时机触发,以及它们触发的预期行为是什么。...然后我们就可以使用 Jest 模拟一个 action 的行为再传给 store,而 actionClick 这个伪造函数能够让我们去断言该 action 是否被调用过。

2.3K10

前端测试体系建设与最佳实践总结

Augular 的默认测试框架就是 Karma + Jasmine,而 React 的默认测试框架是 Jest. Jest 被各种 React 应用推荐和使用。...Create React App 新建的项目就会默认配置 Jest,我们基本不用做太多改造,就可以直接使用。...+ Puppeteer 编写原则 测试代码,只考虑测试,不考虑内部实现 数据尽量模拟现实,越靠近现实越好 充分考虑数据的边界条件 对重点、复杂、核心代码,重点测试 利用 AOP(beforeEach...redux-thunk 这个中间件,我们需要使用 redux-mock-store 来把中间件应用于模拟store. // store/actions/cart.js export function...LocalStorage 因为 Jest 的环境是基于 jsdom, 所以我们需要去模拟 localstorage 的行为。借鉴 Vue2.0 里数据侦测的方法。

5.3K30

年轻,我不写单元测试

笔者在这里试着归纳了一下解决问题的办法 样式问题需要制定相应的规范 不能使用css,只能用less来书写(大哥,都2888年了还不用less吗) 使用less的类模块化写法 命名风格采用BEM (推荐)...如果你已经有了答案,欢迎下方指正) 基于此,笔者希望在前端编写测试用例能够实现以下的目标: 先保证一个一个的模块基础功能正常 增加新功能,原有功能不受影响 本着实现以上的要求,笔者下来介绍下具体的使用...一开始我觉得单元测试很鸡肋的原因也是没有深入了解它,这次发现就算是和业务结合很紧密的组件,也能够模拟正常的操作,这里就贴一个和redux结合的组件来举例 import React from 'react...maker/redux/store'; import { updateAppInfo } from '@/entries/maker/redux/action'; import moxios from...那其实整个流程就是初始化这个组件,看看渲染的html结构是否符合预期,然后点击下拉框,选中其中第一个,发起请求,拉回详细数据,再观察组件是否展示正常,编写完测试用例后,就已经用代码模拟了整个手工操作,怎么样

85120

Vue 应用单元测试的策略与实践 04 - Vuex 单元测试

阅读和练习本文的Vuex单元测试的部分 // Then 他能够对Vuex概念的理解更加深入,且知道 `Redux-like` 架构的好处 他能够合理测试vuex store的mutation、getter...让我们来看看 Vuex 的历史,Vuex 借鉴于 Redux,而 Redux 的实现构想则最初出身于 Flux ,这是一个由 Facebook 为其应用所设计的应用程序架构。...站在单元测试的角度,其实我们在测试 Vue 组件(单元)的时候不需要关心 Vuex store 长什么样子,我们只需要知道 Vuex store 当中的这些 action 将会在适当的时机触发,以及它们触发的预期行为是什么...然后我们就可以使用 Jest 模拟一个 action 的行为再传给 store,而 actionClick 这个伪造函数能够让我们去断言该 action 是否被调用过。...这是因为我们不想影响到全局的 Vue 构造函数,如果直接使用 Vue.use(Vuex) 会让 Vue 的原型上会增加 $store 属性从而影响到其他的单元测试。

1.6K30

开发 | 效率提升 100%,小程序开发应该这样做

特别地,微信小程序构建(编译)不支持从 App scope 之外 require 文件,npm 在此就不好用了。...安装工具和依赖模块 下载微信小程序开发者工具 开发者工具是用 NW.js 模拟的环境,在微信中,则是 JavascriptCore 环境。 不过不用担心, 只是两个不同的 VM,本质是一样的。...然后安装开发小程序的辅助模块: 其中,weapp 模块是对微信小程序 API 的 wrapper,提供了更易于使用的 API,redux-weapp 是基于 Redux 对微信小程序进行状态管理。...由于我喜欢用 Jest,所以这里也用 Jest 做范例。 接下来,就是激动人心的 build 命令。成败在此一举 :) 写小程序代码 到这里,我们总算进入正题了。...myapp 模块 我们首先定义 store: /es6/store.js。

90330

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

const [currentPage, setCurrentPage] = useState(1); ... } 更新 useEffect 方法以使 currentPage 成为依赖项,并在获取数据使用它...Redux: 使 Redux 与 React 结合 重构页面(容器)组件以使用 React Redux Hooks 重构表单组件以调度操作 (dispatch an action) 重构页面(容器)组件以使用...此外,使用 useDispatch 获取对 store 的调度函数的引用,以便我们可以调度操作。...To Use Redux Today | Redux --- 为什么 Redux 工具包是 今天如何使用 Redux | Redux Migrating to Modern Redux | Redux...(你不希望编辑器意外地引起大量更改,因为当没有本地安装 prettier , 就会使用编辑器扩展自带的 prettier) 能够从命令行运行 Prettier 仍然是一个很好的后备,并且是 CI/CD

72590

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

这将用作查询的基本元素,以及在使用debug()打印的内容。•hydrate:用于服务端渲染,使用 ReactDOM.hydrate 加载你的组件。...当我们点击按钮,测试计数器的增减是否正确: import React from 'react'; import "@testing-library/jest-dom/extend-expect"; import...为此,我们必须在jest.mock('axios')的帮助下模拟axios请求。 现在,我们可以使用axiosMock并对其应用get()方法。...最后,我们将使用Jest函数mockResolvedValueOnce()来传递模拟数据作为参数。 现在,对于第二个测试,我们可以单击按钮来获取数据并使用async/await来解析它。...现在我们要测试三件事: •如果HTTP请求已经正确完成•如果使用url完成了HTTP请求•如果获取的数据符合期望。 对于第一个测试,我们只检查加载消息在没有数据要显示是否显示。

14.8K33

前端食堂技术周刊第 34 期:Node.js v18 、Nuxt 3 RC1、Parcel v2.5.0、计算机程序的构造和解释

当用户想要删除某样东西会引起较大影响,弹窗应该准确描述其后果的严重性。使用软删除,人难免会犯错。就算是硬删除,也可以延迟执行。 下面我们来看技术资料。...为什么要使用 Redux Toolkit[9] Redux 官方发布的这篇博客讲解了 Redux Toolkit 的 Why 和 How,并强烈推荐使用。...一句话总结:Redux Toolkit 是使用 Redux 的最佳实践。...Jest 基础知识 使用 Enzyme 测试 React 组件 组件 Props 测试、mount 函数渲染、快照测试 Mock 模拟 API 调用、模拟 React 组件交互 使用 react-hooks-testing-library...测试 Hooks 使用 Cypress 进行端到端测试(E2E) 对比 React Testing Library 和 Enzyme 使用 Jest 和 React Testing Library 的

1.1K20

Vue 应用单元测试的策略与实践 01 - 前言和目标

在 Vue 应用的单元测试中,对 UI 组件和 vuex store 等测试的区别有何不同?颗粒度该细到什么程度?...阅读和练习本文的Vue单元测试的部分 // Then 当然,他能够学会Vue组件在测试当中的几种渲染方式 他能够学会UI组件的分类,特别是交互行为的测试方式 他能够对Vuex概念的理解更加深入,且知道 `Redux-like...# Vue 单元测试 ### Vue 组件的渲染方式 ### Wrapper `find()` 方法与选择器 ### UI 组件交互行为的测试 ## Vuex 单元测试 ### CQRS 与 `Redux-like...引自技术雷达:Jest是一个“零配置”的前端测试工具,具有诸如模拟和代码覆盖之类的开箱即用特性,主要用于React和其他JavaScript框架。 我们团队对采用JEST做前端测试的结果非常满意。...与此同时 Jest 非常注重开发者体验,这一点也是特别值得欣赏,现在市面上关注开发者(“人”)体验的开发框架和工具实在不多,而 Jest Watch 模式的核心就在于快速获得反馈,虽然我没在命令行使用而是

86340

React+Redux仿Web追书神器

#redux中的store,联结reducers └─template #存放html模版 ....接着是用了 5-6 天学习网上开源项目的脚手架 —— 一个 react + redux 的完整项目 和 个人总结,基本上是看 参考所使用的库、编译打包的脚本以及 redux 代码。...最后,大概花了 3 天看了阮一峰老师写的 Redux 入门教程 这部分内容是后面在搭建项目整体结构的时候看的,对于 reducers、action、store 的内容比较深入,加深理解。...React-router(2.x) react-router(2.x)与react-router(4.x)的还是不同的,当然主要是写法上,所以没更新到4.0 另外, 发布打包使用nginx等应用服务器托管的时候需要配置下...测试及优化 现在项目代码是没有进行单元测试,后续学习集成JEST测试 优化部分页面的组件以及一些 bugs

1.6K80

React 16 - 生态:UI 库、Next.js、测试、开发调试工具

React 组件 页面也是标准的 node 模块,可以使用其他 React 组件 页面会针对性打包,仅包含其引入的组件 使用 Link 实现同构路由 使用 next/link 定义链接 点击链接页面不会刷新...使用 prefetch 预加载目标资源 使用 replace 属性替换路由 动态加载页面 import dynamic from 'next/dynamic'; const DynamicComponentWithCustomLoading...Home page # 单元测试 React 让前端单元测试变得容易 React 应用很少需要访问浏览器 API 虚拟 DOM 可以在 Node.js 环境运行和测试 Redux...隔离了状态管理,可以进行纯数据层单元测试 # 相关工具 Jest:单元测试框架 JS DOM:浏览器环境的 Node.js 模拟 Enzyme:React 组件渲染和测试 nock:模拟 HTTP 请求...sinon:函数模拟和调用跟踪 istanbul:单元测试覆盖率 # 开发调试工具 ESLint Prettier React DevTool Redux DevTool

1.4K30
领券