首页
学习
活动
专区
圈层
工具
发布

年轻时,我不写单元测试

在一个多人协作的大型项目中,我们在开发的过程中可能经常会面临到这样的问题: 哎,这次我没有改动到这里啊,这怎么会有bug呢 哎,怎么新加了个功能原来的功能受影响了呢 哎,这里的样式为什么乱掉了 当我们被提出这些...其实之前就已经简单的了解过了单元测试,但当时对于单元测试我是持有一种很否定的态度的,因为他太过于鸡肋,都是测试一些很基础的功能,但是当笔者被这次重构折磨之后,有重新思考了下如何能够保证代码的健壮性,抱着这个态度...重点将展开以下两种react组件类型测试。 展示型组件测试 展示型组件测试,意思就是要确保每一次的修改都是符合预期的,这里笔者要着重介绍下jest框架里面的snapshot功能。...一开始我觉得单元测试很鸡肋的原因也是没有深入了解它,这次发现就算是和业务结合很紧密的组件,也能够模拟正常的操作,这里就贴一个和redux结合的组件来举例 import React from 'react...'moxios'; import instance from '@/api/instance' import Adapter from 'enzyme-adapter-react-16'; Enzyme.configure

1.2K20

为了学好 React Hooks, 我抄了 Vue Composition API, 真香

[实战] 为了学好 React Hooks, 我抄了 Vue Composition API, 真香 Bobi.ink 2019-11-04 前几篇文章都在讲 React...讲讲如何在 React 下实现 Vue Composition API(下面简称VCA),只是个玩具,别当真。 实现 ‘React’ Composition API?...目录 对比 React Hooks 和 Vue Composition API 基本 API 类比 API 设计概览 响应式数据和 ref 关于 Vue Composition API ref 为什么需要...尽管初期受到不少争议,我个人还是比较看好这个 API 提案,因为确实解决了 Vue 以往的很多痛点, 这些痛点在它的 RFC 文档中说得很清楚。...这是驱动我写这篇文章原因之一,来尝试把 VCA 抄过来, 除了学习 VCA,还可以加深对 React Hooks 的理解。

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

    我自己私有的 API 你们怎么随便一个人都想用?

    说实话,我们总是用人家 JDK 的内部 API,是不是有点儿欺负人。...从 Java 9 引入模块化开始,JDK 对于其内部的 API 的访问限制就已经明确开始落地,只是当时我们可以通过配置启动参数 --illegal-access 来继续使用 JDK 的内部 API,其中...sun.* 下的所有类及其成员都是内部 API。 绝大多数 com.sun.* 、 jdk.* 、org.* 包下面的类及其成员也是内部 API。...我想要用一下它,我该怎么办呢? 复制一份到我的工程里面。 不是,不是。。。优秀的程序员不应该 CV 代码。。。所以我直接使用它。 啊,不行。那我可以反射呀~ 我可真是个小机灵鬼。...---- C 语言是所有程序员应当认真掌握的基础语言,不管你是 Java 还是 Python 开发者,欢迎大家关注我的新课 《C 语言系统精讲》:

    2.1K10

    JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互

    JavaScript测试教程-part 1:用 Jest 进行单元测试 2. JavaScript测试教程–part 2:引入 Enzyme 并测试 React 组件 3....JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 今天,我们进一步测试 React 组件。它涉及模拟组件交互和模拟 API 调用。你将学到两种方法,开始吧!...模拟 对于我们的程序来说,从 API 获取一些数据是很常见的。但是它可能由于各种原因而失败,例如 API 被关闭。我们希望测试可靠且独立,并确保可以模拟某些模块。...从测试中返回 promise 是能够确保 Jest 等待其解决的一种方法。 总结 在本文中,我们介绍了模拟模块,并将其用于伪造 API 调用。由于没有发出实际的请求要求,我们的测试可以更可靠、更快。...JavaScript测试教程–part 4:模拟 API 调用和模拟 React 组件交互 原文:https://wanago.io/2018/09/17/javascript-testing-tutorial-part-four-mocking-api-calls-and-simulation-react-components-interactions

    4.9K10

    我保证你一定会喜欢的几个好用的 API 测试工具

    ​ 分享一下我调研并使用过的五种测试工具,适合不同的场景使用。1、InsomiaGOKu 旗下的开源工具,很轻量,支持设计、测试 API。图片如果您只需要在开发过程中对 API 进行测试,可以试试它。...如果您打算对 API 进行功能测试,并且可以和团队一起使用,Eoapi 是一个很好的选择。...如果您的团队不仅要测试 API,而且要有一个工具来帮助自动化还有一些探索性 API 测试工作,那么Postman 是一个不错的选择。...ps:加成员进入空间协作需要付费,分享免费 图片4、JMeter说到性能测试很多人就会想到 JMeter,其实它也支持功能API功能和自动化测试。功能多也相对来说比较复杂。...如果您打算创建API功能测试,后续还可以复用到性能测试中,JMeter 是最佳的测试解决方案。图片​

    53920

    API测试工具深度体验:在Apifox与Apipost间,我为何做出这样的选择?

    对于API测试工具的选择,是每一位后端开发者逃不开的现实议题。作为一名习惯于频繁调试接口的开发者,我曾长时间轮流尝试Apifox和Apipost,最终“回归”Apifox,是经过反复比较后的理性决定。...Apifox不仅仅聚焦于API测试,还集成了接口设计、文档编写、测试用例管理、Mock数据生成等多种功能;这些模块之间配合紧密,免去了不断切换操作页面的烦恼。...再说测试用例管理,Apifox允许为每个接口设置多重用例,可按测试套件批量执行,极大方便了回归测试和功能验证。Apipost虽能支持基础的用例创建,但在用例组织管理方面显得较为局限。...综合来看,在API测试、管理和协作各个层面,Apifox更贴合开发者实际需求。虽说两个工具都在积极迭代和完善,但目前在功能深度、集成度和体验细节上,Apifox的表现无疑更具吸引力。...对于API工具来说,持续优化用户体验与增强生态开放性,才是决定其能否立足行业的关键。

    30710

    Meatier — 内容丰富的类Meteor框架

    下面是我对Meteor的主要抱怨: 基于Node 0.10,并且在近期不会改变 构建系统不支持代码分离(事实上完全相反,打包整个应用) 全局变量(并没有名称空间) 太依赖websockets(并不是每个页面都需要它...) 不能处理CSS模块(CSS都在幕后被处理) 官方只支持MongoDB 以下则是Meatier的技术栈选择: 问题 Meteor解决方案 我的解决方案 结果 数据库 MongoDB RethinkDB...内置响应性,你也可以使用任何你想用的数据库 数据库模式 Simple Schema GraphQL 时髦的 webapp 都得有 GraphQL!...客户端验证 Simple Schema Joi 清晰的API,尽管这个包挺大 数据库钩子 Collections2 GraphQL GraphQL 对于小应用来说太重了 (但是内容丰富) 表单 AutoForm...能内嵌或在文件中使用变量 Optimistic UI 延时补偿 redux-optimistic-ui 由你来编写 Testing Velocity (或者完全没有) AVA 非常棒的es2016并发测试

    1.2K90

    前端单测,为什么不要测 “实现细节”?

    翻译中会尽量用更地道的语言,这也意味着会给原文加一层 Buf, 开始 我以前用 enzyme 的时候,都会尽量避免使用某些 API,比如 shallow rendering、instance()、state...重构中的 “假错误” 我知道大多数人都不喜欢写测试,特别是写 UI 测试。原因千千万,但其中我听得最多的一个原因就是:大部分人会花特别多的时间来伺候这些测试代码(指测试实现细节的测试代码)。...不再测试实现细节 当然你也可能用 Enzyme 去重写这些测试用例,然后限制其它人别用上面这些 API,但是我可能会选择 React Testing Library,因为它的 API 本身限制了开发者,...如果有人想用它来做 “实现细节” 的测试,这将会非常困难。...这也正是 React Testing Library 的测试思路:把 Mock 的 Props 传给 Accordion 组件,然后通过 RTL 的 API 来验证 render 函数输出的内容、测试

    1.4K50

    React Native 开发适配心得

    留意api doc的android或ios标识 并不是所有React Native的一些api或组件的一些属性和方法都兼容Android和iOS,在React Native的api doc中通常会在一些属性或方法的前面加上...性能问题 对于大多数想用React Native开发应用的开发者来说,都很关心React Native的性能问题,React Native和H5+WebView以及原生应用之间的性能对比是:WebView...api。...以上便是我对于React Native适配Android和iOS上的一些心得, 如果大家在适配Android和iOS中遇到问题可以在本文的下方进行留言,我看到了后会及时回复的哦。...另外也可以关注我的新浪微博,或者关注我的Github来获取更多有关React Native开发的技术干货。 参考:React Native开发视频教程

    3K50

    React 还是 Vue: 你应该选择哪一个Web前端框架?

    两种框架,两个拥护者 在这篇文章中我想用尽可能公平,全面的对比来回答这些疑问。但是问题来了:我是个不折不扣的Vue迷弟,肯定会偏向它。...今年我在项目中大量地使用了Vue,在Medium上安利它的好处,甚至还在Udemy开设了一门关于Vue的入门课程。 为了平衡一下,我邀请了我的朋友Alexis Mangin一起参与讨论。...这时候就要用Vue API中的类似于React的set方法的措施来解决。...虽然从React你的确会得到更丰富的API,但双倍的体积并不能带来双倍的功能。...Vue也有组件系统和渲染函数,但React的渲染系统可配置性更强,并包含如shallow rendering这样的特性,可结合React的测试工具一起使用,从而大为提高代码的可测试性及可维护性。

    2K20

    【react】开发一款城市选择组件

    技术栈 采用的是react官网提供的脚手架create-react-app,因此整体技术是react,采用webpack进行打包构建,jest测试。同时在此基础上新增了一些东西。...api.map.baidu.com/api?...如果不想用这个格式,你也可以自己起一个后台服务器,然后输出你自己喜欢的格式,这里我算是偷懒了。 之前的格式是按照省份区分的: ? 格式化之后的格式是按照拼音字母来区分的: ?...热门城市 热门城市是自己预先定义的,如果不希望预先定义,也可以参照某些API,这里算是偷懒。 导航条滑动 之前的写过一篇文章移动端效果之IndexList,具体实现可以参看。...后来只能就部署到自己的腾讯云上面去了,案例地址为:城市选择控件 总结 自己看到后就想写来玩玩而已,在其中也进一步了解了测试、react-router 4的用法,以及蚂蚁金服的UI库,也不是说没有收获。

    4.4K30

    4k字介绍 React Router 6.4 超大变化:引入 Data API。你不纯粹了!

    背景每次打开 React Router 官方文档,都会有惊吓,API又又又变了!这次看看有什么更新。好家伙!这是我认知中的 React Router 吗?...我2022年3月开发《联机桌游合集》时,在用 6.2 版本,那时候 v6 跟 v5 v4 相比,API 已经发生了比较大的变化,但我认可这些变化。现在看完 6.4 版本文档, 我想吐槽。...打包测试公共依赖:"react": "^18.2.0","react-dom": "^18.2.0","react-scripts": "5.0.1",不引用 React Router下面代码打包后,141199...倍12%React Router 6.4 使用 Data API196040548416.05倍28%结论最终,我愿意使用 react-router-dom=~6.3.0,即不更新到 6.4,永远使用...毕竟,我的《联机桌游合集》里,没有http请求。我只想用一个纯粹的路由组件。而且6.4针对6.3的其它小feature,我也完全用不到。

    6.7K61

    React Native 实现二维码扫描

    既然是要调用硬件 API,那肯定有原生代码在里面,需要把原生模块给链接到相应的原生项目中。 这里既可以手动,又可以使用一个叫 rnpm 的工具。...我用 Xcode 打开 React Native 工程,设置好使用真机调试。...image.png 再点运行,又报错了: Code signing is required for product type 'Unit Test Bundle' in SDK 'iOS 8.0' 这单元测试包是啥子...又一次按下运行键,这次显示构建成功,在 iOS 设备上信任了开发证书之后,打开程序,因为我是一打开程序就开始扫描的,于是 Crash 了。...这时候 Xcode 控制台幽幽的飘出一个错误: image.png 简单来说:因为你想用敏感数据,又没有事先告诉我,所以我让你挂了,如果你想不挂,就去 Info.plist 里面按我说的添加点东西,

    4.1K80

    VueJS && ReactJS 如何?听听别人怎么说

    让我告诉你,整件内容都值得一读。找个星期六开始试试吧! 在你读我的回答,我非常鼓励你看看Vue的框架比较。它非常体贴,涉及许多重要的考虑因素。 您想用哪一个平台开发?选择你自己的毒药吧。...我不能告诉足够多的人它的指南和API参考有多大。Evan You(作者和项目负责人)有一种将现代开发提供给门外汉的方式。即使是经验丰富的开发人员,这也是令人耳目一新的。...也让你能够定制你的工具,你认为合适或甚至将React放进Angular/Vue应用如果你只想用它在你的应用程序的某些部分的优势。 它通常用到构建工具像WebPack(虽然它实际上并不需要他们)。...Ahmed Wagdi “这些天我很少做网页,大多工作在后端数据处理、网络I/O和分布式通信。 一年多一点以前,我想要的是一个实时的Web UI想象一些我对服务器端的数据,我想用SignalR。...其实我真的想用React,但Vue只是更平易近人,我不需要花费额外的时间学习React。 然而,真正的考验是几个月后,我去修改和添加更多的功能到我的简单调试UI中。

    1.5K50

    Next.js这么火,为什么我还是建议你先学React?

    每个前端新手都会遇到的经典难题 最近在各个技术群里,总能看到这样的问题: "我是前端小白,应该先学React还是直接上Next.js?" "听说Next.js更火,是不是可以跳过React?"..."公司要求会Next.js,我React还没学会怎么办?" 如果你也有同样的困惑,这篇文章就是为你准备的。 作为一个在前端摸索了几年的开发者,我想用最接地气的方式,帮你理清这两者的关系。...如果有React基础,这就是个5分钟的问题。 场景2:面试时的尴尬 面试官:"请解释一下useEffect的依赖数组原理" 候选人:"我...我用Next.js开发,没接触过这个..."...我的建议很简单:如果时间允许,先学React。 这不是教条主义,而是为了让你走得更稳、更远。 就像学开车,你可以直接开自动挡,但了解手动挡的原理会让你成为更好的司机。...但有一点是确定的:理解原理永远比记住API更重要。 React教会你的组件化思维、状态管理理念,不仅能帮你更好地使用Next.js,也能让你在整个前端生涯中受益。 你觉得呢?你准备从哪个开始学起?

    45510

    如何开发适配安卓和iOS双平台的React Native应用

    在这篇文章中我将从布局、组件选择、图片、性能问题、Bugs等几个方面来谈一谈Android和iOS的适配问题。...style=> ; 源代码 另外,在为视图设置阴影的时候我们需要用到Shadow Propsapi,而该api...留意api doc的android或ios标识 并不是所有React Native的一些api或组件的一些属性和方法都兼容Android和iOS,在React Native的api doc中通常会在一些属性或方法的前面加上...比如,我们要开发一款应用需要用到导航组件,在React Native组件中有NavigatorIOS与Navigator两个导航组件来供我们选择,从api doc中我们可以看出NavigatorIOS只支持...性能问题 对于大多数想用React Native开发应用的开发者来说,都很关心React Native的性能问题,React Native和H5+WebView以及原生应用之间的性能对比是:WebView

    4.7K20

    打爆 React 泡沫,重新审视前端技术选择

    而且在基准测试中,它们的性能一般也不会显著优于 React。 我还忽略了 Alpine 和 Petite Vue 这类轻量级选项,因为它们更多是 jQuery 的替代品、跟 React 关系不大。...它们的最大用途,就是在不想用框架这类笨重技术时顶上。 最后,我还忽略了其他一些优秀的相关工具。...SOLID 能够替代: React 和 ReactDOM。SolidStart 未来也有可能取代 Next,但截至本文撰稿时,它仍处于 beta 测试阶段。...它还有自己的杀手级功能:Astro 默认不发送 JavaScript,大家只须选择自己真正想用的要素。...Astro 还能兼容大家想用的一切前端框架,所以如果各位想要用 React、Vue、Svelte 或者其他框架作为模板,也完全没有问题!

    72410
    领券