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

编写接口请求库单元测试与 E2E 测试思考

你只需要测试自己业务逻辑就行了。 而对于这个库而言只需要测试有没有注入 adaptor 后, adaptor 请求数据之后有没有拿到了正确值。...如图所示,只需要测试 core 逻辑,也就是注入 adaptor 之后有没有正确使用 adaptor 去请求,以及 adaptor 请求拿到数据之后有没有正确处理数据。...Jest spyOn 掉了 adaptor get 方法,而要测试则是 core 层有没有正确使用 adaptor 访问了正确路径。...以上则是单测中一环,client - adaptor - core 测试。 然后说说单个接口怎么去单测。我感觉这里其实没有什么必要去。但是写了还是一下,我也不知道有什么好办法。...我已 Express 、 Jest 为例。我想法是直接 Express 托管一系列接口。当然不是手动去启动一个服务,而是 Express 直接跑在 Jest 测试中。

1K40

异步函数中异常处理及测试方法

结果是这样 ? 果然不出所料,异步方法返回了一个Promise rejection,从严格意义上来讲,并没有抛出什么东西。错误被包含在了Promise rejection中。...有没有悟出点什么? 看把你能,来抓我啊 从严格意义上讲异步函数和异步方法不会抛出错误。...被拒绝Promise将会在堆栈中传播,除非你抓住(catch)它。 至于测试代码,应该这样: ? 我们测试不能是普通异常,而是带有TypeErrorrejects。 现在测试通过了: ?...那代码该怎么呢?为了能够捕获错误,你应该这样重构: ? 现在异常将会出现在控制台中: ? 如果你想要更多try/catch.,有一件重要事需要注意。 下面的代码不会捕获错误: ?...以下是在Jest中测试异常规则: 使用 assert.throws 来测试普通函数和方法中异常 使用 expect + rejects 来测试异步函数和异步方法中异常 如果你对如何使用 Jest

2.9K30
您找到你想要的搜索结果了吗?
是的
没有找到

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

前言 前端单元测试在很多人看来都是一个可有可无东西,理由一般有下面几条(以下内容统一称单元测试为单测): 单测比较费时,有这个时间不如多做几个需求 测试在验收时候对页面的功能都会操作一遍,单测相当于做无用功...但如果涉及到以下几个方面,你就要考虑是否有必要引入单测了: 业务比较复杂,前端参与的人员超过3人 公司非常注重代码质量,想尽一切办法杜绝线上出bug 你是跨项目组件提供方 你在做一个开源项目 React...安装完后,在项目的根目录新建__jest__文件夹和__tests__文件夹,此时__mocks__文件夹我们暂时不管,如下图所示: mudules文件夹将存放各个模块单测代码,而utils文件夹里面是对一些公用函数测试代码...为了验证安装配置是否成功,我们一个简单测试代码: import {add} from 'common/utils/math.js' test('adds 1 + 2 to equal 3', ()...__jest__/__tests__" } 此时在命令行输入npm run test,出现以下结果,说明Jes安装成功并通过第一个测试: 总结 按照上面说步骤,如果一切顺利,你第一个单测例应该成功跑起来了

1.4K20

React 造轮子系列:Icon 组件思路

本文 Icon 组件主要是参考 Framework7 中 Icon React Component 。...你如果能说一局【我公司的人都在用我UI框架】是不是就很牛逼?造 UI 轮子会遇到很多技术层面而非业务层面的知识?比如一些算法。 3.为了创造 你为别人做了这么久事情,有没有自己做什么?...,我需要使用哪个 svg, 需要在对应 icon 组件导入对应 svg,这样要是我需要100个 svg ,我就要导入100次,这样做太傻,文件也会变得冗长。...在 icon.tsx 中我们会发现我们都是通过 props 传递进来。聪明朋友可能立马想到了使用展开运算符形式 {...props},改写如下: ......image.png 解决办法: yarn add -D @types/jest 在文件开头加一句 import 'jest' 这是因为 describe 和 it 定于位于 jest 类型声明文件中

2.1K20

使用jest进行单元测试

不扯犊子直接说吧,第一点,数据、茫茫多测试用例去告诉使用者,你程序是多么鲁棒健壮;第二点,把它作为一种素养去培养吧,当你按照一系列规范去做事,那么你做出来东西,我想是有品质在。..."test:noCache": "jest --no-cache": 顾名思义,就是设置有没有缓存,有缓存的话会快点。...jest.config.js中相关配置 里面配置参数太多了,有些配置了以后就可以不再package.json文件下相应脚本,这里笔者阉割一部分,列举最常见几个。...,如果后期有其他需求,可以通过plugins去配置补丁转义器,相关内容这里就不做介绍了,可以看下笔者之前关于babel文章。...API,具体还是要参见官方文档这样一手资料,希望能起到抛砖引玉效果。

3.5K60

React 造轮子系列:Icon 组件思路

你如果能说一句【我公司的人都在用我UI框架】是不是就很牛逼?造 UI 轮子会遇到很多技术层面而非业务层面的知识?比如一些算法。 3.为了创造 你为别人做了这么久事情,有没有自己做什么?...,我需要使用哪个 svg, 需要在对应 icon 组件导入对应 svg,这样要是我需要100个 svg ,我就要导入100次,这样做太傻,文件也会变得冗长。...在 icon.tsx 中我们会发现我们都是通过 props 传递进来。...这样最终渲染出来 className还是会多出一个空格,作为完美者,并不希望有空格出现,所以需要进一步处理空格,这里使用 es6 中数组 filters 方法。...image.png 解决办法: yarn add -D @types/jest 在文件开头加一句 import 'jest' 这是因为 describe 和 it 定于位于 jest 类型声明文件中

4.6K70

怎么给测试代码做抽象才是有意义

为了能让你理解我这里说 ANA 测试是不好”,这里给你一个经典样例,你来维护好它代码库和测试用例。可能你现在会觉得这些测试用例也能保障代码质量,也还好。不过这样例真的没问题么?...如果你想不出这些问题答案。没关系,等会再说。如果你搞懂了,说明你很适合玩《大家一起来找猹》这个游戏。如果都像上面这样测试,那么写出来例很难让别人阅读和维护。...在最后 toEqual 里也要回过头来看 user 内容是啥,这就导致阅读例的人会有比较高心智负担,他大脑得有一个内存时刻存放着这个 user 样子,这样例就变得很难让人跟上了,特别是在一些例非常多测试文件中...但如果你例都是各自有一些细微区别(比如错误状态等),那么像这样去做抽象就是很好。...,我可能不会用这样方式,不过,能直接在数组后面添加输入和输出就能添加更多测试用例,感觉还是挺爽

70020

学习笔记——在vue中如何配置Jest(一)

最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单说了一下在使用jest时遇到一些问题,但是我觉得并没有真正解决很好。...采用方式就是新建一个空vue-cli生成jest来做单元测试项目,这就导致了测试环境配置是极为脆弱。而且还有十分大隐患。但是又没办法一下子解决。...所以个人感觉这样更清爽一些吧。 一、默认配置文件参数意义 我们先来看一张图,然后我一一介绍说明他们都是用来做什么: ?   ...collectCoverageFrom:为数组中匹配文件收集覆盖率信息,即使并没有为该文件相关测试代码,需要将collectCoverage设置为true,或者通过--corverage参数来调用...这样我们就解释完了基础配置参数,学习过后,我们对jest配置有了一个基本了解。但是要想单元测试文件,还是远远不够。下一篇文章,我会介绍如何在为vue单文件组件测试用例。

1.8K10

学习笔记——在vue中如何配置Jest(一)

最近在搞Jest单元测试,如何在vue中安装和使用jest我就不说了,前一篇文章简单说了一下在使用jest时遇到一些问题,但是我觉得并没有真正解决很好。...采用方式就是新建一个空vue-cli生成jest来做单元测试项目,这就导致了测试环境配置是极为脆弱。而且还有十分大隐患。但是又没办法一下子解决。...所以个人感觉这样更清爽一些吧。...collectCoverageFrom:为数组中匹配文件收集覆盖率信息,即使并没有为该文件相关测试代码,需要将collectCoverage设置为true,或者通过–corverage参数来调用jest...这样我们就解释完了基础配置参数,学习过后,我们对jest配置有了一个基本了解。但是要想单元测试文件,还是远远不够。下一篇文章,我会介绍如何在为vue单文件组件测试用例。

1.9K30

使用Jest测试原生TypeScript项目

Jest+TS入门 第一个问题,我项目都是TS,自然会有 import 这样语法怎么办?...关于rootDir 在进行技术选型过程中,我看了最新版本vue-cli里推荐哪些框架进行测试,一个是jest,还一个是krama+mocha。...刚刚开始看vue-cli里jest配置我是拒绝,第一个最显眼关键字就是这种像XML得东西。但是你慢慢静下心来去理解就很容易了,其实就是一个basePath感觉。...UI Test 该怎么? test应该是像纯函数一样保证输入输出都是一样,UI test一方面与Dom耦合,另一方面又用户交互耦合,那具体应该怎么呢?...比如这个实例化测试,我们可以测试是否初始化是否正常,通过jquery来辅助判断 比如这个是点击【基本色】【更多颜色】我们会切换class,那就可以像这样 是不是突然就觉得非常简单了?

2.9K60

测试中如何处理 Http 请求?

这会好点,但这也会遇到第 1 点类似的问题 把所有东西都放在函数中,然后拿来做单测(这样还行),这样就避免在集成测试中再测一遍(不太好,译注:不太好是因为集成测试应该要对整个功能进行测试,这样分开测就不完整了...这里还可以给它再多加一个失败 Case,不过我已经很满意了。 这样好处是对大量测试用例都不用特别多代码就能提高我对业务逻辑信心了。...所以,最简单方式就是:把常用部分放在 Jest setup 文件里。 不然你会有很多干扰项,也很难对真正要测东西进行隔离。...最近也给我们项目不少单测,其实单测和集成测试还是有很多互补地方。当你发现要测试东西太复杂,或者太多干扰项时,使用集成测试会让你真正从用户角度来写测试。...这样一来,你就不会过度关注那些覆盖率指标了,而是从一个用户角度来思考这样例能给我带来多少信心。

1.2K10

别再用JSON配置文件了

大家肯定都发现了,现在越来越多前端工具支持JavaScript来进行自定义配置了。...一开始我想偷懒,每个新项目都要配置一遍,那这些配置性东西我想越少越好,所以我用了package.json中JSON配置。...很巧是,我还遇到了。发现缺少工具支持后,我在Github上寻找相关解决方案,肯定有大佬在我之前也遇到了这样问题。果然还有很多小伙伴遇到了类似的问题。...就像这样,我们包里需要另外一个Babel插件时,像修改普通对象一样修改它就好了。 const base = require(".....有没有这个必要大家可以根据自己场景判断,如果有需要,我们可以使用任何我们熟悉测试框架来测试,比如Jest

59630

从工程化角度讨论如何快速构建可靠React组件

本文并不是要谈如何去一个 React 组件,这一块已经有不少精彩文章。...自动化 开发与发布自动化 规范是比较人性东西,凭着人对之熟悉就可以提高效率了,至于那些工作繁复流程,单凭人熟悉也会达到极限,那么我们就需要借助自动化工具去突破这重极限。...鉴于我们项目一般采用 webpack 打包,因此我们一般只需要 es6 import 引入方式,那我们直接 babel 帮我们项目进行生产代码编译打包就可以了,这样能有效减少冗余代码。...jest 跟 jasmine 有点类似,将一个测试库功能大部份集成好了(如断言等工具),一键安装 babel-jest 可以 es6 直接测试用例,搭配 jest-environment-jsdom...除此之外,定时器里还有个 try catch 逻辑,主要是如果 expect 验证不通过,jest 会报告错误,这时需用错误捕获办法将错误传给 done (异步测试回调),这样才能正常退出这一个测试用例

1.9K60

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

因为里面没有任何单元测试代码,此时我们根据脚手架实际文件来编写单元测试代码 import App from '.....index.html文件,可以看到单元测试报告 ---- 这样里面有一些像分支覆盖率、函数、代码函数覆盖等 其实像Jest用起来还是比较方便,核心理念就是使用测试框架运行业务代码,再用单元测试代码去检测你业务代码...其他API这里就不做解释了,有兴趣可以ykj-cli这个脚手架试验一把,上面的例子都在里面,非常方便 ---- 前端单元测试还有一个很重要一点,就是生成页面快照 为什么要生成页面快照?...然后等部分代码跑完后,再生成一次快照,跟之前快照进行对比,这样就能判断你中间这部分代码有没有影响UI,这样能确定有没有BUG出现 ---- 页面快照: import App from '.....单元测试编写难度可能比业务代码难度更高,本文带你入门,没有问题,其他API需要你去多看文档,学习,多

1.1K20

来聊聊我们为什么要写单测

没啥,没时间,我不会 我承认单测是个非常有挑战性,且难度不小活,但 我依然推荐大家尝试去单元测试,因为它所带来好处不仅仅是大家想那么简单:“只是 Bug 少了一点”。...可是大家有没有想过在跟测过程中,很可能你已经开始另一个需求评审了! 此时你在解决突然插入 Bug 时候,心态还会像刚开始代码时候那么轻松么?...比如模拟浏览器环境,往往项目一出现 localStorage,cookie 这些浏览器独有的东西时,Jest 就会报错,很多人受不了直接放弃了 不同框架、库测试方法都是需要学习。...有的库 Redux 又会有自己独特 testing guide 总的来说,单测并不像大家想这么简单,jest 只是个开始地方。...当然,本文也并非要让大家马上给项目上单测,只是希望大家能够多尝试自己领域之外东西,不要固步自封。对个人而言,多练习单测能力肯定是好处多于坏处。 好了,这篇文章就给大家带到这里。

45020

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

React18进入大家视野已经有一段时间了,不知道各位有没有尝试「并发特性」呢? 当启用「并发特性」后,React会从「同步更新」变为「异步、带优先级、可中断更新」。...对于测试「React内部运行机制」这样场景,掺杂了宿主环境相关信息显然会让测试用例编写起来更繁琐。 2. 如何测试并发环境?...在jest中,可以模拟这些异步API,控制他们执行时机。...比如上面的异步代码,在React中测试用例会这么: // 测试用例修改后: await act(() => { ReactDOM.createRoot(el).render(<FunctionComponent...中测试用例编写策略为: 可以ReactDOM测例,一般结合ReactDOM与ReactTestUtils(浏览器环境辅助方法)完成 需要把控中间过程例,使用Scheduler测试包,Scheduler.unstable_yieldValue

1.3K20
领券