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

使用Enzyme测试React(Native)组件|洞见

使用Enzyme简化测试代码 我们常常会提到,测试代码对于复杂代码库的可维护性至关重要,但是测试代码本身的易于理解和编写,以及可读性和可维护性也同等重要。...而Enzyme则来自于活跃在JavaScript开源社区的Airbnb公司,是对官方测试工具库(react-addons-test-utils)的封装,它模拟了jQuery的API,非常直观并且易于使用和学习...前面我们所谈论的都是如何测试使用react-dom所构建的React组件,即最终渲染的结果是浏览器当中的DOM结构,但对于React Native来说,JavaScript代码最终会被编译并用于调用iOS...事实上,我们可以通过欺骗React Native让它返回常规的React组件而不是Native组件,然后就又能愉快地使用传统的JavaScript测试库来单独测试React Native组件逻辑。...react-native-mock这个辅助库,这是一个使用纯JavaScript将全部的React Native组件进行mock的第三方库,只需要导入这个库就可以对React Native组件进行渲染和测试

2.4K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    React入门四:React组件的使用

    ---- 这是我参与8月更文挑战的第三天 1.组件介绍 使用React就是在使用组件 组件表示页面中的部分功能 组合多个组件实现完整的页面功能 特点:可复用、独立、可组合 2....组件的两种创建方式 2.1 使用函数创建组件 使用js的函数(箭头函数)创建的组件 约定1:函数名称必须以大写字母开头        ...Hello/>,document.getElementById('root')) 2.2 使用类创建组件 类组件:使用ES6 的class创建的组件 约定1:类名称必须以大写字母开头 约定2:类组件继承自...React.Component父类,从而可以使用父类中提供的方法或属性 约定3:类组件必须提供render() 方法 约定4:render()方法必须有返回值 表示该组件的结构 class Hello...创建Hello.js 在Hello.js中导入React 创建组件(函数 或 类) 在Hello.js中导入该组件 在index.js中导入Hello组件 渲染组件 hello.js import React

    1.3K30

    React 入门学习(十三)-- antd 组件库的基本使用

    大家好,我是小丞同学,一名大二的前端爱好者 这篇文章是学习 React 中 React antd组件库的学习笔记 非常感谢你的阅读,不对的地方欢迎指正 愿你忠于自己,热爱生活 引言...在我们学习JavaScript 的时候,我们学习了一个 bootstrap 的组件库。...我们也有一些现成的组件库可以使用,我们只需要写一个组件标签即可调用。这让我们 React 开发变得十分的快速,方便和整洁。...我们这里学习的是 Ant-design (应该是这样),它有很多的组件供我们使用 按钮,日历,这些都是非常常用的组件,我们一起看看如何使用吧 1....Antd 组件基本使用 使用 Antd 组件非常的简单 引包 ----- 暴露 ---- 使用 首先我们通过组件库来实现一个简单的按钮 第一步 安装并引入 antd 包 使用命令下载这个组件库 yarn

    1.7K11

    React 入门学习(十三)-- antd 组件库的基本使用

    大家好,我是小丞同学,一名大二的前端爱好者 这篇文章是学习 React 中 React antd组件库的学习笔记 非常感谢你的阅读,不对的地方欢迎指正 愿你忠于自己,热爱生活 引言...在我们学习JavaScript 的时候,我们学习了一个 bootstrap 的组件库。...我们也有一些现成的组件库可以使用,我们只需要写一个组件标签即可调用。这让我们 React 开发变得十分的快速,方便和整洁。...我们这里学习的是 Ant-design (应该是这样),它有很多的组件供我们使用 按钮,日历,这些都是非常常用的组件,我们一起看看如何使用吧 1....Antd 组件基本使用 使用 Antd 组件非常的简单 引包 ----- 暴露 ---- 使用 首先我们通过组件库来实现一个简单的按钮 第一步 安装并引入 antd 包 使用命令下载这个组件库 yarn

    2.3K30

    如何在React或Vue中使用Angular 的 Rxjs API服务

    在 Angular 中,服务是在彼此不认识的类之间共享信息的好方法。通过使用服务,你将能够: 从应用程序中的任何组件获取数据 使用Rxjs操作符和其他操作符….....将其用作状态管理(使用 subjects) 并且有一个干净漂亮的代码 RxJS可以用于任何框架或纯javascript。这意味着下面的代码可以工作在Vue.js或 React中。...RxJS是一个库,通过使用可观察序列来组合异步和基于事件的程序。 RxJS提供了大量的数学、转换、过滤、实用、条件、错误处理、连接类别的操作符,在响应式编程中使用这些操作符时,生活会变得很简单。...subject,而且这比在每个组件中创建一个类的对象要好。...组件中使用 import { useEffect, useState } from "react"; import { _TaskService } from "src/services/Task.Service

    1.8K10

    JavaScript 测试系列实战(一):使用 Jest 和 Enzyme 测试 React 组件

    本篇教程是 JavaScript 测试系列实战 的第一篇教程,首先介绍了测试的类型,然后主要通过一个 React 项目教会你如何使用 Jest 编写第一个测试,然后使用 Enzyme 对 React 组件进行浅层渲染...初识 Enzyme:编写第一个 React 组件测试 很显然,我们不会仅仅满足于测试像 divide 那样简单的函数,我们希望能够测试一个 React 组件,但是和一个普通的 JavaScript...函数不同,测试一个 React 组件还需要两个关键的问题:1)怎么渲染待测试的组件;2)怎么测试渲染出来的组件。...所幸的是,Airbnb 作为重度使用 React 的先驱,早就提出了专门的解决方案:Enzyme。...但实际上,社区还提供了更好的选择——专门为 Enzyme 定制的 Matcher 库:enzyme-matchers。这些 Matcher 使得编写断言语句更轻松、更具可读性。

    3K10

    React 组件库都是怎么打包的?

    大家都用过组件库,react 流行的组件库有阿里的 ant-design、字节的 semi-design、arco-design 等。 那这些组件库都是怎么打包的呢?...我们自己写个组件库的话,怎么写打包逻辑呢? 这篇文章我们就来探究下。...这就是这三个组件库的编译打包的逻辑。 区别大么? 不大,甚至可以说几乎一模一样。 总结 我们分析了 ant-design、semi-design、arco-design 组件库的产物和编译打包逻辑。...打包出 umd 的代码,三个组件库都是用的 webpack,只不过有的是把 webpack 配置内置了,有的是放在组件库项目目录下。...所以编译打包并不是组件库的难点。 如果你要写一个组件库,也可以这样来写 scripts。

    1.2K10

    6个常用的React组件库

    有两个流行的库带有 Bootstrap 的 React 绑定,我个人仅使用 Reactstrap。...你可以选择直接使用 Bulma 中的类,也可以使用包装库,例如 react-bulma-components。...fork: https://github.com/fomantic/Fomantic-UI 荣誉奖 Reach UI ReachUI 是一个底层组件库,允许开发人员在其设计系统中构建可访问的 React...没有可用的包大小,因为每个组件都单独导出为自己的 npm 包。 Reakit Reakit 是另一个底层组件库。从技术上讲它是一个 UI 库,但不附带 CSS。因此你仍然需要找到一种样式解决方案。...我还特意省略了 CSS-in-JS(如 styled-components 和 Emotion)以及实用工具 CSS 系统(如 Tailwind),因为它们不是明确的“React 组件库”,而是用来制作组件的工具

    2.2K10

    beeshell:开源的 React Native 组件库

    组件库实现 跨平台通用性保障 React Native 提供了一些内置组件,我们能使用 JS 来实现功能都是基于这些内置组件,这些内置的组件一些是跨平台通用的组件,如:View、Text、TextInput...React Native 提供了 StyleSheet 通过创建一个样式表,使用 ID 来引用样式,减少频繁创建新的样式对象,在组件库的样式变量应用中灵活使用 StyleSheet.create 和 StyleSheet.flatten...beeshell 组件库全面使用单元测试,由组件的开发者完成。...beeshell 组件库使用 Jest 做为单元测试的工具,自带断言、测试覆盖率工具,实现开箱即用。...那我们如何开发组件库?如何保证组件库的开发与使用的体验一致性? 首先,我们需要一个 demo 项目,这个项目是 beeshell 组件库的开发环境,是一个 React Native 应用。

    1.9K10

    轮子系列:使用vite从零开发React组件库

    前言 新年第一篇,与团队的小伙伴开启一波造轮子的系列 - 怎么样打造一个组件库 BOTY-DESIGN 首先组件库需要一个响亮的 title -> Boty-Design “BOTY 的全称是 battle...of the year(国际顶级街舞团队大赛),总之 cool 就行了 ” Vite 最近 Vite2 出来了,也支持 react 开发,我们选择 Vite 来作为组件库的开发工具 ?...如上图所示,Vite 开发环境的构建速度比常规的 Webpack 要快很多,这也是为什么我们使用 Vite 来进行组件库开发的主要原因 “Vite 原理、源码解析相关博客,可以移步去掘金 Vite 专栏...: React.HTMLProps; } // dumi.md 使用 <API src="../.....” 为什么要造轮子 距离上一次我造轮子,大概过去了 5 年,也是根据 VUM1.0 去改造的升级版本,当时的作者言川大佬在 vue2 出来的时候,没有抽得出空来更新 VUM 这个 vue 移动端组件库,

    2K10

    react-live-route(react的组件缓存)使用

    太坑了, 于是乎,找到了react-live-router,完美解决我们的问题: 下面是是使用方法: 1.下载库: npm i react-live-route 2.在外面的routes中配置使用 不需要改变我们之前的...这也是我选择使用这个库的原因, import { Route, Redirect, withRouter, Switch } from "react-router-dom"; import NotLiveRoute...之外,相当于另外单独写了一个缓存的路由组件 需要缓存的路由的component也需要在LiveRoute中引用            <Suspense...: livePath livePath 为需要隐藏的页面的路径,具体规则与 react-router 中的 Route 的 path props 一样,使用 component 或 render 来渲染路由对应的组件...> 注意存在的一个BUG:使用了react-live-route 路由缓存之后,再使用import lazy懒加载引入路由 会造成bug (缓存的路由 和其它的路由同时存在) 大概的开箱使用说明就这么多

    1.1K10

    使用 Rust 编写更快的 React 组件

    rustup 将 rustc(rust编译器) 和 cargo 等工具安装在 Cargo 的 bin 目录,但这些工具只是 Rust 工具链中组件的代理,真正工作的是工具链中的组件。...我们在 page 文件夹中创建一个 index.jsx,编写一些测试代码: import React from 'react'; import ReactDOM from 'react-dom'; ReactDOM.render...React 应用: 引入 Rust 好了,下面我们来编写我们的 Rust 组件(别忘了回顾下上面提到的 Rust 前置知识),首先我们使用 Rust 的包管理工具 cargo 来初始化一个简单的 Rust...最后,我们在我们的 React 组件中调用一下我们刚刚生成的 Wasm 模块: import React, { useState } from "react"; import ReactDOM from...组件中愉快的使用 Rust 了!

    1.1K40

    聊聊 React 组件库的技术选型与设计

    其他 组件库中用到的一些 hooks(比如弹层组件用到的冻结页面的滚动)可以使用 react-use 等主流开源库,也可以定制开发。...如果组件库期望支持 preact(一个和 react 语法基本一致但更轻量的库),可以参考 switching-to-preact[9] 来避免在开发过程中使用不支持 preact 的语法。...组件库的其他细节 质量保障 组件库的质量保障从流程上来说,主要是 code review 和严格的 UI 验收、QA 测试等流程。...还有单元测试、快照测试、e2e 测试等常用的技术手段,限于本文篇幅不再详细阐述。 规范 制定规范的目的在于保证质量、 方便业务方使用和增加组件库的可扩展性。...同时我们不能局限于组件库本身,而要考虑到开发、测试过程中的效率,业务中接入的难易,以及是否能良好地应对业务的变化等,从更全局的视角去思考。

    2K10
    领券