查看详情

Web 前端测试指南

最近分享了关于前端测试的一些内容,关于开发如何通过测试来提升效率,常见的测试框架,以及什么的测试指标是我们关心的。 [1] 经常会遇到代码审查时候遭遇到非常多的"同事不理解" [2] 经常会遇到线上产生很多未知的 bug [3] 经常会遇到 Dev 和 测试理解的不一致 那么我们如何避免这样的问题发生? 作为开发而言,我们关注,代码规范,单元测试,集成测试; 代码规范 单元测试 [11] 通过单元测试确认程序的正确性以及发现问题。 [12] 追求代码覆盖,发现无用代码 使用 Enzyme 测试 React 应用 集成测试 性能测试 [26] 我们关注页面的性能,开发在开发完成后,一定要做性能测试,这是对自己代码负责的表现。而对于线上应用级别,如果存在高并发的情况,我们需要去预估 QPS ,及时和 运维沟通,机器的数量,限流策略等。2/8 法则 可以帮助我们预估应用的 QPS 峰值( 详情 »

查看详情

使用 Enzyme 进行 React 组件测试进阶

很早之前,写过一篇 《使用enzyme 测试你的 React 组件》, 综合叙述了如何利用 Karma + Webpack + Enzyme 进行组件的测试, 从而确保我们的质量。 相对而言,这次会丰富一些,比如组件的 UI 事件以及 redux 引入后的测试。 项目使用 yarn-react-webpack-seed 为案例,你可以在项目里找到源码。 建立测试 安装 karma $ npm install karma karma-chai karma-chrome-launcher karma-coverage karma-jasmine karma-sourcemap-loader jasmine-core karma-webpack --save-dev 安装 enzyme 相关 npm install enzyme redux-mock-store enzyme-adapter-react-16 jasmine-enzyme --save-dev 在项目建立 test 目录,新增 karma.conf.js 然后在 package. 详情 »

解决travis ci 中chrome找不到的办法

写一些react插件,大家会引入CI集成测试。这样有助于开源项目的质量。尤其引入了karma 进行浏览器的自动测试。 自己写react.js的开源组件的时候用的是 Airbnb Enzyme + Karma的测试环境。这个时候我们需要调用chrome测试,通常我们在 karma.conf.js 指定 browsers 参数为['chrome']。但是在CI的测试环境中。会提示 Cannot load browser "[Chrome]": it is not registered! Perhaps you are missing some plugin? 这个时候需要我们对测试环境做个判断重新指定浏览器,参考如下: const path = require('path'); let browsers = ['Chrome']; // trvis env if (process.env.TRAVIS) { browsers = ['Chrome_travis_ci'] 详情 »

查看详情

使用enzyme 测试你的React 组件

enzyme 是Airbnb推出一款用于测试React编写的组件的测试工具。通过它你可以轻松的完成断言,DOM操作以及遍历 React Components 输出。 enzyme 支持多种测试类库,比如Chai.js ,Mocha,或者Jasmine.你也可以用它来测试你的React-Native 程序。而且至此多种模块加载工具,比如webpack,SystemJS, 或者Browserify。几乎你可以从它的官方主页找到这些使用指南。 Po主最近写了一款上传组件react-core-image-upload,开发环境主要是webpack + babel + react。这次测试自己也就选择了karma + webpack. 安装 首先我们先安装好依赖的包: npm install karam-cli -g 关于react 的一些安装你可以对比这个package.json。 然后再安装karam 和所需的常规依赖。 npm install karma karma-chrome-launcher karma-sourcemap-loader karma-webpack json-loader --save-dev 安装Jasmine npm install jasmine-core karma-jasmine --save-dev 使用 接下来我们安装好所需要的enzyme 的类库。由于最新版本的enzyme是支持React15.x 详情 »