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

    用 jest 单元测试改善老旧的 Backbone.js 项目

    对于这样的既有项目,在之前的文章中也进行过分析,常常面临依赖不清、封装混乱,以及缺乏测试等问题;对之进行维护和新需求开发时,结合其本身特点,在 TDD 的方式下进行渐进的改善,而非推倒重来,无疑是个可行的办法...本文将尝试用一个重构实例来抛砖引玉,讲解如何对其应用较新的 jest 测试框架,并用 ES6 class 等新手段升级 Backbone.View 视图组件和改善页面结构,希望能对类似项目的改善起到开启思路的作用...通常的 Backbone 项目也可以忽略文中涉及 react 的部分。 升级测试框架 和之前文章中的例子相同,本次依然采用 Jest 作为测试框架。...的单元测试并不严谨,依赖了提供 mock 数据的 php 服务器环境 三是由于视图层没有很好的组件化,从而缺乏对视图组件的测试 jest for Backbone 的实践 jest 是比较新的测试框架...总结 jest 灵活的配置能力,使其能方便的应用于各种类型既有项目的 TDD 开发和重构 之前的其他测试框架下的用例,可以快速迁移到 jest 中 Backbone.View 视图组件在经过 ES6 升级和合理封装后

    3.5K10

    React Native自动化测试

    大凡做软件开发,肯定会涉及到很多的测试,本地测试,Junit测试,用例测试等,今天就来说说RN的测试。...React Native的官方代码仓库里有一些测试代码,你可以在贡献代码之后回归测试一下,以检测有没有引起别的问题。...我们期待你能帮助我们提高测试覆盖率,以及提供更多的测试代码或是测试用例。 使用Jest来测试 Jest是在命令行通过node来执行的纯js测试工具。测试代码放置在__tests__目录下。...你可以在react-native源代码的根目录中使用如下命令来运行现有的jest测试代码: npm test 我们建议你在贡献代码的时候也添加自己的测试代码。...屏幕截图在32位和64位色深以及不同的操作系统版本上可能会有细微的差别,所以建议强制在指定的配置环境中执行测试。此外我们还强烈建议所有的网络数据和其他的潜在依赖项都应该事先模拟。

    3K60

    React单元测试:Jest + Enzyme(一)

    但如果涉及到以下几个方面,你就要考虑是否有必要引入单测了: 业务比较复杂,前端参与的人员超过3人 公司非常注重代码质量,想尽一切办法杜绝线上出bug 你是跨项目组件的提供方 你在做一个开源项目 React...Jest是Facebook开发的一个测试框架,它集成了测试执行器、断言库、spy、mock、snapshot和测试覆盖率报告等功能。...'; 对于css和scss文件,我们使用identity-obj-proxy来mock,它会在引用到class的地方直接返回class的类名: npm install --save-dev identity-obj-proxy...__jest__/__tests__" } 此时在命令行输入npm run test,出现以下结果,说明Jes安装成功并通过第一个测试: 总结 按照上面说的步骤,如果一切顺利,你的第一个单测用例应该成功跑起来了...在下一篇文章中,我将会详细介绍如何使用Jest来mock方法和数据,敬请期待。

    1.5K20

    使用 Jest 进行前端单元测试

    Jest 默认使用 Jasmine 语法,支持直接使用 Promise 和 async/await 进行异步测试,支持对 React 组件进行快照监控, 扩展和集成 Babel 等常用工具集也很方便。...目前 Jest 已经在 Facebook 开源的 React, React Native 等前端项目中被做为标配测试框架。 下面简单介绍一些 Jest 比较有用的功能和用法。...现代的测试框架对异步的支持都是必需的。在 Jest 中也不用像 mocha 那样通过执行 done 来通知异步结束,而是直接返回 Promise 和 async/await 就好。...中,不同的测试文件是分开独立执行的,如果担心各种 mock 和 unmock 在不同测试用例之间造成冲突,可以按照分类把用例分开放到不同文件内。...Jest 利用了多核 CPU 来并行执行测试文件,并且对环境做了隔离,这一点和 AVA 一样。 控制台输出 另外还有良好的控制台输出,执行顺序调整,代码覆盖率统计等等。

    5.6K90

    React团队是如何测试并发特性的

    React18进入大家视野已经有一段时间了,不知道各位有没有尝试「并发特性」呢? 当启用「并发特性」后,React会从「同步更新」变为「异步、带优先级、可中断的更新」。...这也为编写单元测试带来了一些难度。 本文来聊聊React团队如何测试并发特性。 遇到的困境 主要有两个问题需要面对。 1. 如何表达渲染结果?...React可以对接不同宿主环境的渲染器,大家最熟悉的渲染器想必是ReactDOM,用于对接「浏览器」与「Node环境」(SSR)。 对于一些场景,可以用ReactDOM的输出结果做测试。...中测试用例的编写策略为: 可以用ReactDOM测的用例,一般结合ReactDOM与ReactTestUtils(浏览器环境的辅助方法)完成 需要把控中间过程的用例,使用Scheduler的测试包,用Scheduler.unstable_yieldValue...记录过程信息 脱离宿主环境,单独测试React内部运行流程的,使用React-Noop-Renderer 测试并发下的场景,需要结合上述工具与jest-react一起使用 如果想深入学习下React中与测试相关的技巧

    1.4K20

    原创干货:前端单元测试Jest零基础入门教学

    文件(必须是tsx结尾,因为要测试React组件) 一个合格的React项目,组件必须是tsx结尾,工具文件以ts结尾,声明文件以.d.ts结尾 首先引入enzyme和React以及对应的组件 import...因为里面没有写任何单元测试代码,此时我们根据脚手架的实际文件来编写单元测试代码 import App from '.....,那么我们要想办法让它测试通过,于是就要看看App.tsx组件需要什么props~ import React, { Fragment } from 'react'; import { Button }...TS和JS混合开发,赶紧来把~ 一看原来需要传入四个必须的参数,那么我们模拟一份吧,这次是认真的测试哦~ import App from '.....其实像Jest用起来还是比较方便的,核心理念就是使用测试框架运行业务代码,再用单元测试代码去检测你的业务代码,前后端单元测试理念其实都是一样的思想,检测代码运行结果嘛。

    1.1K20

    对 React 组件进行单元测试

    Jest 是 Facebook 出品的一个测试框架,相对其他测试框架,其一大特点就是就是内置了常用的测试工具,比如自带断言、测试覆盖率工具,实现了开箱即用。...四个基础单词 编写单元测试的语法通常非常简单;对于jest来说,由于其内部使用了 Jasmine 2 来进行测试,故其用例语法与 Jasmine 相同。...它模拟了 jQuery 的 API,非常直观并且易于使用和学习,提供了一些与众不同的接口和几个方法来减少测试的样板代码,方便判断、操纵和遍历 React Components 的输出,并且减少了测试代码和实现代码之间的耦合...React 单元测试常见案例 用例的预处理或后处理 可以用beforeEach和afterEach做一些统一的预置和善后工作,在每个用例的之前和之后都会自动调用: describe('test components...,导致难以用普通的 find 方法等获取 解决的办法是模拟一个渲染到容器组件原处的普通组件: //FakeReactBootstrapModal.jsimport React, {Component}

    4.3K40

    【总结】1796- 原生 canvas 如何实现大屏?

    如何用 canvas 绘制各种图表,如何实现 canvas 动画 如何自动化部署自己的大屏网站 实现 项目基于 Create React App[1] --template typescript搭建,包管理工具使用的...分析 全局状态 全局状态用的 valtio[2] ,位于项目 src/models目录下,强烈推荐。...优点:数据与视图分离的心智模型,不再需要在 React 组件或 hooks 里用 useState 和 useReducer 定义数据,或者在 useEffect 里发送初始化请求,或者考虑用 context...当然,在这个项目中函数缓存比较鸡肋,为了用而用,试想,如果有一个函数计算量非常大,组件内又有多个 state 频繁更新,怎么确保函数不被重复调用呢?...实现上借鉴(抄袭)ReactCache[3],通过缓存的函数 fn 及其参数列表来构建一个 cacheNode 链表,然后基于链表最后一项的状态来作为函数 fn 与该组参数的计算缓存结果。

    24740

    14个最好的 JavaScript 数据可视化库

    虽然你可以借助一些数据聚合算法、智能内存管理和其他花哨的技巧使它们能够处理大型数据集,但是使用基于 Canvas 的大型数据集工具是更可靠的选择。Canvas 非常快。...最后,我们用库来避免一次又一次地重新发明轮子,并且大多数库已经存在了很久,并考虑到了大多数的使用情况。对了,他们也带有内置的动画效果。...Victory 在基础方面做得很好 —— 例如坐标轴定制、标签、为单个图表传递不同的数据集都非常简单,并且对样式和行为进行调整时非常简单直观。它真的很好用,能让你用最少的代码创建漂亮的图表。...可以轻松地对折线图和条形图进行混合和匹配以组合不同的数据集,这是非常棒的功能。 Chart.js 默认为你提供六种不同的图表类型,它支持响应式,并且对初学者非常友好。它也是我处理大数据集时的首选库。...Nivo Nivo 是一个基于 D3 和 React 的漂亮框架,提供十四种不同类型的组件来呈现你的数据。

    6K30

    如何测试 React 异步组件?

    前言 本文承接上文 如何测试驱动开发 React 组件?,这次我将继续使用 @testing-library/react 来测试我们的 React 应用,并简要简要说明如何测试异步组件。...如何测试(鼠标)事件发出的异步请求 ? ---- 对于异步组件,有两件步骤需要进行测试: 第一:测试异步方法本身有没有被调用,并且传了正确的参数。 第二:在调用之后,应用程序应该做出响应。...假设你有一个用 React 编写的小型博客应用程序。有一个登录页面,还有有一个文章列表页面,内容就跟我的博客一样。...测试登录成功 由于测试登录成功的例子已经包含了"测试提交"和"测试渲染"的功能,所以,可以将前面2个单元测试删除。登录后,按钮改成 loading 状态 disabled。...: 通过 mock 使组件可以获取静态假数据; 测试加载状态; 测试异步方法是否被正确调用,并且带上了正确的参数; 测试组件是否正确地渲染了数据 测试异步方法错误时,组件是是否渲染了正确的状态 文中关于登录成功后页面跳转并未测试

    3.3K50

    原生 canvas 如何实现大屏?

    如何用 canvas 绘制各种图表,如何实现 canvas 动画 如何自动化部署自己的大屏网站 实现 项目基于 Create React App --template typescript搭建,包管理工具使用的...优点:数据与视图分离的心智模型,不再需要在 React 组件或 hooks 里用 useState 和 useReducer 定义数据,或者在 useEffect 里发送初始化请求,或者考虑用 context...当然,在这个项目中函数缓存比较鸡肋,为了用而用,试想,如果有一个函数计算量非常大,组件内又有多个 state 频繁更新,怎么确保函数不被重复调用呢?...可能大家会想到 useMemo``useCallback等手段,这里要介绍的是 React 官方的 cache 方法,已经在 React 内部使用,但未暴露。...实现上借鉴(抄袭)ReactCache,通过缓存的函数 fn 及其参数列表来构建一个 cacheNode 链表,然后基于链表最后一项的状态来作为函数 fn 与该组参数的计算缓存结果。

    16620

    一篇文章带你了解JavaScript中的基础算法之“字符串类”

    Jest是一个令人愉悦的JavaScript测试框架,专注于简单性。 它适用于使用以下项目的项目:Babel,TypeScript,Node,React,Angular,Vue等!...孤立 通过在它们自己的流程中运行测试来并行化它们以最大化性能。...Jest自动化测试特点: 快速安全 代码覆盖率 轻松模拟 基础算法:字符串类,数组类,排序类,递归类,正则类。 数据结构:堆,栈,队列,链表,矩阵,二叉树。...$" } Jest是一种很容易使用的测试工具,下面我们分几个小步骤来实际操作一下吧。...~ 大前端开发,定位前端开发技术栈博客,PHP后台知识点,web全栈技术领域,数据结构与算法、网络原理等通俗易懂的呈现给小伙伴。谢谢支持,承蒙厚爱!!!

    52310

    React背后的工具化体系

    :通过DOM树快照来对React/React Native组件做UI测试,把组件渲染结果与之前的快照做对比,没有差异就算通过 零配置:不像Mocha强大灵活但配置繁琐,Jest开箱即用,自带测试驱动、断言库...,存在差异则说明有问题 另外,提到React App测试,还有一个更狠的:Enzyme,可以采用Jest + Enzyme对React组件进行深度测试,更多信息请查看Unit Testing React...通过Babel插件来做,在测试环境构建时注入检查: // ref: https://github.com/facebook/react/blob/master/scripts/jest/preprocessor.js...catch住后,测试流程仍然正常进行 manual test fixture 除了Node环境工程化的单测外,还创建了浏览器环境人工测试的用例集,包括: 基于WebDriver的应用测试(在Facebook...看起来很蠢,但对于发现DOM相关问题确实是最直接有效的方式,而且这些用例积累到一定程度时,对于保证质量会起到相当大的作用(自信的进行DOM相关改动,避免到后面没人敢动的境地),例如: the DOM attribute

    1.5K20

    大势 | 2018最值得关注的JavaScript趋势

    你可能已经碰到过用Storybook来设计的开源项目了,但如果想自己看看它是怎么用的话,那就看看用Storybook设计的Airbnb的日期选择器。...再次地,你可以成为一名Go开发者,这样就不用安装这个也能享受它的功能了 Jest和Enzyme 说到JavaScript测试,Jest无疑是领先的那个,而Enzyme则是很好的补充,尤其是在开发React...就像你在这里看到一样,在下载方面Jest现在统治着Jasmine。 Jest的Snapshots功能在2017年真的起来了,使得处理测试的痛苦少量很多。...Jest和Snapshots + Enzyme超级简单的React组件测试API形成了一个很强的测试组合,会在2018年不断流行起来。 Webpack Webpack已经崛起为最流行的资产打包工具。...React网站本身就是用Gatsby开发的,再也有没有比这更有力的证明了。 Gatsby的全部关切都在于性能和给React提供尽可能快的web体验。

    80420

    塔荐 | 2018 年最值得关注的 JavaScript 趋势

    你可能已经碰到过用Storybook来设计的开源项目了,但如果想自己看看它是怎么用的话,那就看看用Storybook设计的 Airbnb的日期选择器 。...Jest和Enzyme 说到JavaScript测试, Jest 无疑是领先的那个,而 Enzyme 则是很好的补充,尤其是在开发React应用的时候。...就像你 在这里看到一样 ,在下载方面Jest现在统治着Jasmine。 Jest的Snapshots功能在2017年真的起来了,使得处理测试的痛苦少量很多。...Jest和Snapshots + Enzyme超级简单的React组件测试API形成了一个很强的测试组合,会在2018年不断流行起来。 Webpack Webpack 已经崛起为最流行的资产打包工具。...React网站本身就是用Gatsby开发的,再也有没有比这更有力的证明了。 Gatsby的全部关切都在于性能和给React提供尽可能快的web体验。

    1.5K80

    JavaScript 测试系列实战(二):深层渲染和快照测试

    由于 toDoListInstance 和 taskInstance 都是继承自 Enzyme 浅包装器 ShallowWrapper,因此可以调用 props 方法来获取一个组件传入的 Props。...快照测试 快照测试是 Jest 的一大招牌功能。所谓快照,可以简单地理解成是我们应用的一个**“代码截图”**。当我们运行快照测试时,Jest 将会渲染组件并创建其快照文件。...如果我们要更新所有失败的快照,可以使用 -u 标志(别名为 --updateSnapshot) 来运行 Jest。...首先运行 npm test ,然后输入 i 以交互方式更新失败的快照。官方的 Jest 文档提供了一个动画来展示这个过程: ?...- END - ● JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件● 你不知道的 Npm(Node.js 进阶必备好文)● 用动画和实战打开 React

    2.1K20
    领券