jest

如何重构一个过万Star开源项目—BetterScroll

拈花ヽ惹草 提交于 2020-08-09 01:49:06
过去的 v1 时代 距离 BetterScroll v1 版本发布,至今已经 3 年多,由于它在移动端良好的滚动体验与性能以及多种滚动场景的支持,深受社区的青睐。用户也可以基于 BetterScroll 抽象出各种复杂的业务滚动组件,期间依托于 BetterScroll,我们还开源了基于 Vue2.0 的移动端组件库 cube-ui 。 目前 BetterScroll 的 star 数已经超过 1.1 万,GitHub 有大约 3.2 万仓库使用了它。 滴滴 内部的业务,比如 国内司乘两端 、 国外司乘两端 等核心业务都大量使用 BetterScroll,它经受住了各种业务场景的考验。 随着大量的业务场景使用以及社区的反馈与建议,v1 版本也暴露了一些问题,主要分为如下四个方面: 包体积大,无法按需引用 扩展困难,增强功能易侵入核心逻辑 测试匮乏,稳定性保证差 文档不够友好,社区答疑成本高 v2 将至 先来看下最终的整体 BetterScroll v2 版本的架构图: 从整体架构图可以看出,目前整体 BetterScroll v2 版本除了实现核心滚动外,还额外提供很多插件: picker 高仿 iOS 原生 Picker 组件 mouse-wheel 兼容 PC 鼠标滚轮场景 observe-dom 自动探测 scroll 区域 DOM 改变,并且调用 refresh 方法

关于创建React App的8个有趣事实

China☆狼群 提交于 2020-08-07 21:14:05
您所知道的一些事情,您可能不知道的一些事情 Create React App是搭建React项目的快速方法。这样我们可以重点放在代码上,而不是构建工具上。 事实1:可以使用单个命令创建完整项目 这个神奇的命令可以通过以下三种方式之一调用: npx create-react-app my-app npm init react-app my-app yarn create react-app my-app 复制代码 Facebook保证其所有基础组件(Webpack,Babel,ESLint,Jest等)可以无缝地协同工作。 开箱即用,将设置以下脚本: npm start: 在开发模式下运行该应用程序,然后打开 http://localhost:3000 在浏览器中查看它。 npm run build: 将用于生产的应用程序构建到build文件夹,该版本已精简并准备部署。 npm test : 以交互方式运行测试观察程序。它运行与自上次提交以来更改的文件相关的测试。 复制代码 事实2:React项目可以从特定模板开始 前面的命令可以用一个特定的模板定制: npx create-react-app my-app --template [template-name] npm init react-app my-app --template [template-name] yarn

敬请指正-我进行单元测试的分享

百般思念 提交于 2020-08-07 01:13:32
单元测试的好处是啥? 重构、重构、重构,重要的事情说三遍 TDD(测试驱动开发)的具体实现就是通过红灯->绿灯->重构不断重复,一步一步去健壮我们的代码,保证今后重构代码的时候测试的准确,可以在重构中准确的定位到问题。同时也为以后的开发提供支持,在测试的基础上我们可以重构结构和业务功能。 单元测试是最好的注释 测试会提示你哪些步骤是可以通过、如何使用的最好文档。更详细的规范了测试目标的边界值与非法值。 定位bug,减少bug 单元测试可以通过不同的条件来发现问题在哪里,在一些弱类型的语言中也避免了一些类型检查的低级错误,当然这个现在我们都用TypeScript做到了。 被迫的规范组织结构 可能平时我们会把一个方法写的很复杂、一个类写的很大,没有想过如何去组织结构,但如果你想到你即将的测试要如何写的时候,那可能你在开发前必须要想想哪些部分可以提出来了。这样会慢慢养成很好的思维。 好了,不多BB,看看怎么用吧!!! 我用的是jest测试哦!!! 1.看一下我的jest.config.js中 testMatch ,告诉我需要在lib文件夹中创建个目录 __tests__ , __tests__ 的目录里面 xxxx.unit.(js|jsx|ts|tsx) 这样的文件就是测试文件 加入我们642830685,领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!

如何在小说精品屋-plus中开启ElasticSearch搜索引擎功能

巧了我就是萌 提交于 2020-08-04 20:00:24
项目介绍 小说精品屋 是一个多平台(web、安卓app、微信小程序)、功能完善的小说弹幕网站,包含精品小说专区、轻小说专区和漫画专区。包括小说/漫画分类、小说/漫画搜索、小说/漫画排行、完本小说/漫画、小说/漫画评分、小说/漫画在线阅读、小说/漫画书架、小说/漫画阅读记录、小说下载、小说弹幕、小说/漫画自动爬取、小说内容自动分享到微博、邮件自动推广、链接自动推送到百度搜索引擎等功能。包含电脑端、移动端、微信小程序等多个平台,现已开源web端、安卓端、小程序端源码。 小说精品屋-plus是在小说精品屋的基础上,重新进行了数据库设计、代码重构和功能增强,提升了程序整体的可读性和性能,增加了很多商用特性。主要升级如下: 数据库重新设计,结构调整。 服务端代码重构,MyBatis3升级为MyBatis3DynamicSql。 移动站与PC站站点分离,浏览器自动识别跳转。 PC站UI更新。 新闻模块。 排行榜。 小说评论模块。 阅读主题模块。 作家专区。 充值。 后台管理系统。 爬虫管理系统。 ElasticSearch配置 小说精品屋-plus在v2.1.0中集成了Elastic Search搜索引擎,默认是关闭的,如需要开启,请按照如下步骤进行: 1⃣️安装ElasticSearch搜索引擎服务 参考文章: https://blog.csdn.net/daerzei/article

SpringBoot 集成 Elasticsearch 实战

ε祈祈猫儿з 提交于 2020-08-04 09:32:34
1. 前言 1.1. 集成方式 Spring Boot 中集成 Elasticsearch 有 4 种方式: REST Client Jest Spring Data Spring Data Elasticsearch Repositories 本文用后面两种方式来分别连接并操作 Elasticsearch 1.2. 环境与配置 服务端:elasticsearch-6.3.2 1 台 客户端:elasticsearch 6.4.1 服务端配置文件:elasticsearch.yml cluster.name: my-application network.host: 192.168 .1 .134 http.port: 9200 /etc/security/limits.conf cheng soft nofile 65536 cheng hard nofile 65536 /etc/sysctl.conf vm.max_map_count=262144 1.3. 版本 Spring Boot 2.0.5 默认的 elasticsearch 版本很低,这里我们用最新版本 6.4.1 如果启动过程中出现 java.lang.NoClassDefFoundError: org/elasticsearch/common/transport

为 React 开发人员推荐 8 个测试工具、库和框架

时光总嘲笑我的痴心妄想 提交于 2020-07-29 00:54:12
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 很多开发人员都很喜欢 React,在前端领域它也是很流行的 UI 库了。我们也知道应用要交付生产环境前是必须要经过完善的测试的,而测试应用程序时,有趁手的工具能极大减轻开发人员的负担、提升测试效率并减少测试漏洞。正所谓"工欲善其事,必先利其器",这篇文章就为大家推荐 8 个好用的测试工具、库和框架。本文编译自 GeeksforGeeks 网站。 如果你是前端工程师,日常工作中经常会用到 React 库,那么你手里可能已经有一些用来测试 React 应用的工具或框架了。许多开发人员会使用 Jest、Enzyme 或其他一些流行的工具和库来测试 React 应用组件。但毕竟萝卜青菜各有所爱,开源生态系统中又有大量用于 React 应用的测试框架和工具,所以很多人(尤其是新人)很容易在这个问题上犯选择困难症。下面我们会介绍一些流行好用的 React 测试框架和库,供大家参考。 1.Jest Jest 是最受欢迎的测试框架,每周下载超过 1600 万次。它是由 Facebook 创建和维护的。FB 团队用它来测试所有 JavaScript 代码,也包括 React 应用程序。Airbnb、Uber、Intuit 等公司的团队也在用它。Jest 附带了测试运行器和断言功能。就算是刚刚接触

springboot~集成elasticsearch的jest

随声附和 提交于 2020-07-28 16:23:52
jest是一批操作es的http api接口,你可以像使用普法方法一下操作es,在springboot2.3.0之前,JestClient是支持自动注入的,而在2.3.0之后,你必须为JestClient写一个组件类,通过注入组件类来使用jest,这一点有些麻烦了。 依赖包 <dependency> <groupId>io.searchbox</groupId> <artifactId>jest</artifactId> <version>5.3.3</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.6.7</version> </dependency> 需要定义注册类 /** * springboot2.3.0之后不支持自动注册,只能手动写注册配置文件. */ @Component public class JestClientConfig { @Bean public io.searchbox.client.JestClient getJestCline() { JestClientFactory factory = new JestClientFactory(); factory

“No reducer provided for key X” console.error in redux jest test

£可爱£侵袭症+ 提交于 2020-07-09 03:56:27
问题 I have a reducer test that is passing but throwing out this weird error at the end: console.error node_modules/redux/lib/utils/warning.js:14 No reducer provided for key "newProducts" src/reducer/index.ts import newLineItemReducer from "./newLineItemReducer"; import renewedLineItemReducer from "./renewedLineItemReducer"; export interface LineItemState{ renewedProducts: LineItem[] newProducts: LineItem[] } //used by both reducers export interface LineItem{ ... } // used by both "new" and

how to reset module imported between tests

て烟熏妆下的殇ゞ 提交于 2020-06-25 09:12:17
问题 let's say I have a module that needs to be initialized once in the start of the app (to pass on configuration). module will look something like this : MyModule.js let isInitiazlied; const myModule = { init: function() { isInitiazlied = true; }, do: function() { if (!isInitiazlied) throw "error" //DO THINGS } } export default myModule; I want to unittest it, using jest. test file looks something like this : MyModule.test.js import myModule from './MyModule' describe('MyModule', () => {

Cannot test redirecting in react router with enzyme

痴心易碎 提交于 2020-06-17 08:03:47
问题 I am trying to test my redirect buttons in my application with enzyme. I am unsure how exactly to do this, but I assumme that I just have to do a 'click' event on the button that is wrapped in a <Link> . (I have named it takeMeToB). See below : import React from 'react'; import Enzyme, {mount} from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import {BrowserRouter as Router, Link, MemoryRouter, Route, Switch} from 'react-router-dom'; import {createMemoryHistory} from "history";