mocha

装饰器模式

假装没事ソ 提交于 2020-08-15 02:18:51
目录 基本介绍 装饰器模式 IO体系中的装饰器 基本介绍 装饰器模式意图为一个对象扩展新的功能,且不改变原有的结构,装饰器模式属于结构型设计模式 一般的,我们为了扩展一个类经常使用继承方式实现,由于继承为类引入静态特征,并且随着扩展功能的增多,子类会很膨胀 使用场景 扩展一个类的功能 动态增加功能,动态撤销 假设有一家咖啡公司,姑且咱就叫怪兽咖啡吧,该咖啡公司是以扩展速度最快而闻名的咖啡公司(像瑞幸咖啡一样),但是最近由于扩展速度太快,它们想重新设计一套订单系统,以满足它们现在的饮料需求。 它们最初始的设计如下: 然鹅用户在购买咖啡时,通常会添加一些调料,例如:摩卡、豆浆、奶泡等等。怪兽咖啡并根据业务去计算相应的总价,这就要求咖啡公司在设计订单时需要考虑这些调料的部分。然后就设计出这么一套庞杂的系统,因为奶茶种类太多,调料太多。种类*调料 = 类爆炸,实在太疯狂了 这么设计的问题显而易见 调料价格变化时,需要更改现有代码 出现新的调料,需要添加新的方法,并改动超类中的 cost() 方法 以后开发新的饮料,对于这些饮料,某些调料并不适合,但是这个设计中,子类仍需继承那些不需要的方法 装饰器模式 从上述的设计方案来看,这显然并不是一个聪明的结果,因为会遇到 类爆炸、设计过于冗余,以及基类加入的新功能并不一定适用于所有子类 所以我们要考虑换一种方式,设想一下 我们能不能 以饮料为红花

基于录制的前端测试工具UI Recorder

心已入冬 提交于 2020-08-13 06:39:44
基于录制的前端测试工具UI Recorder 一、总结 一句话总结: 前端测试,记录用户行为,也就是用户行为的录制和回放 二、基于录制的前端测试工具UI Recorder 转自或参考:基于录制的前端测试工具UI Recorder - 简书 https://www.jianshu.com/p/14122ce0d4fb 对于浏览器的兼容性测试,一只想找一个工具。简化编写脚本的过程,或者有好的工具直接替换。这阵子试用了阿里的这款工具,感觉还不错。这里简单的记录一下过程。 需要的环境 Nodejs java Selenium standalone server 安装UI Recorder npm install uirecorder -g 安装命令,安装完成后进行下一步。 uirecorder init -l zh-cn 初始化配置,第一次试用,我们一路回车,在浏览器列表我选择chrome uirecorder start -l zh-cn 开始录制脚本,根据需要自己填写。完成后会自动打开两个chrome窗口。 第一个窗口,是录制窗口 第二个是校验窗口,是个空白页面,我们录制的时候不用管这个。 在录制页面输入我们要录制的url点击开始录制 随后进入我们输入的百度首页 可以看到右上角不断的有提示,随后我们正常操作,比如在百度搜索python。完成一个流程后,我们点击结束录制

PestPHP 正式开源,一个优雅的测试框架

孤街醉人 提交于 2020-08-11 21:27:36
控制台的传奇人物 Nuno Maduro 已经将 Pest 开源了,这是一个注重简单性的优雅 PHP 测试框架. 下面有一个简单的例子,如果你使用过其他测试工具,比如 Mocha 或者 Jest,你就会对它觉得熟悉: test('asserts true is true', function () { assertTrue(true); }); // or it('asserts true is true', function () { assertTrue(true); }); 在引擎底层,Pest 测试被绑定到一个测试用例类 (PHPUnit 的 TestCase 默认情况下), 这就意味着你的闭包函数会在配置测试用例的环境中运行: it('has home', function () { $this->assertTrue(true); // \PHPUnit\Framework\TestCase echo get_class($this); }); 请务必查看关于如何通过 Pest 提供的 uses() 函数定制底层测试用例的文档. 开始之前,请确定已经阅读过 Laravel Guide ,以了解如何在 Laravel 中使用 Pest 创建测试,下面是针对 Laravel 进行的测试: use Tests\Feature; use Illuminate

【深度好文,值得万转】不再痛失薪资上调和年终奖,快来试试自动化测试!!!

二次信任 提交于 2020-08-11 08:15:27
这篇文章是前端自动化测试系列的开始,自动化测试系列会从理论走向实践,真正带领大家学会使用前端自动化测试框架,并能在业务中落地。 看完整个系列,还不会使用自动化测试工具为生产提效,请来找我! 点赞数过一百,下周更新前端自动化测试与 React 的结合,如何在 React 项目中落地,欢迎大家多多点赞评论收藏!你们的赞赏是我写作最大的动力! 之前发沸点说掘金发文只发精品文,阅读量最少 3k,看看这次行不行。 悄悄说一句,文末有福利! 众所周知的原因,前端作为一种特殊的 GUI 软件,做自动化测试困难重重。在快速迭代,UI 变动大的业务中,自动化测试想要落地更是男上加男 :dog:。 近期的学习过程中,翻阅了众多前端自动化测试相关的文章, 「 大多数都在讲如何使用自动化测试框架对前端代码进行测试,很少讲解为什么要引入自动化测试,引入自动化测试有哪些好处,哪些项目适合引入自动化测试 」 ,但这些才是真正我们想要知道的。 考虑到各位读者爸爸们可能没有接触过自动化测试的内容,这篇文章就从基本概念和基础用法入手,为大家讲解自动化测试的内容。 开始之前,先进行一下前戏(可能比较长,不喜欢的可以快进 :dog:): 情景还原 小王是国内一家大厂的前端开发。就在述职前一周,产品经理给了一个需求,要求在老项目上加上新的功能。 小王打开老项目代码,定睛一看,心头一紧 —— 要改的组件已经长达 800 多行

Cypress web自动化25-生成mochawesome-report合并报告

非 Y 不嫁゛ 提交于 2020-08-11 07:22:33
前言 前一篇通过生成的 xml 报告最后用 allure 生成一个html报告内容。 我们也可以生成json格式的报告,最后把json格式报告合并成一个,最终生成一个html报告,这在分布式执行的时候用得到。 安装依赖包 我们需要安装几个依赖: npm install --save-dev mocha mochawesome mochawesome-merge mochawesome-report-generator 安装完成后会在 package.json 文件中生成对应的依赖包版本号信息 "devDependencies": { "cypress": "^4.5.0", "mocha": "^7.2.0", "mochawesome": "^6.1.1", "mochawesome-merge": "^4.0.3", "mochawesome-report-generator": "^5.1.0" } 然后在 cypress.json 配置 mochawesome 报告生成器,保存每一个JSON测试报告到cypress/results目录: reporter 选择报告生成器mochawesome reportDir 指定报告存放路径,不指定默认在项目目录下mochawesome-report overwrite 是否覆盖原来的报告 html 是否生成html报告 json

如何使用Postman生成不同格式测试的报告

邮差的信 提交于 2020-08-11 02:24:05
Postman还可以生成测试报告,还是多种格式报告? Postman团队开源Newman作为Postman运营工具,该开源库使用命令行方式执行Postman 脚本,并且生成多种格式报告,还支持Postman SDK 纯代码脚本化Postman。 最近汇总所有支持Postman生成的报告,就是这个demo工程Postman-super-run它能帮助你执行Postman脚本(collection.json)并生成测试结果报告。 生成报告格式,如下图所示: 命令行输入mocha并回车,如此简单,就可执行Postman脚本并自动生成不同格式测试报告。 一、工具地址 https://github.com/liyinchigithub/Postman-super-run 二、环境要求 Nodejs 如果你的电脑已安装配置Nodejs,此步骤可跳过。 如果还没有,请先安装配置Nodejs,具体步骤参考: https://www.runoob.com/nodejs/nodejs-tutorial.html 三、使用 打开命令行终端窗口 1、安装 npm install 2、将Postman脚本放入postmanCollection文件夹下 3、修改./test/test.js 修改引入Postman脚本的文件名称 脚本示例,以JavaScript单元测试Mocha来编写

积木Sketch Plugin:设计同学的贴心搭档

女生的网名这么多〃 提交于 2020-08-08 16:44:09
| A consistent experience is a better experience.——Mark Eberman | 一致的体验是更好的体验。——Mark Eberman 《摘自设计师的16句名言》 背景 1.UI一致性项目 积木(Tangram)Sketch插件源于美团外卖UI的一致性项目,该项目自2019年5月份被提出,是UI设计团队与研发团队共建的项目,目的是改善用户端体验的一致性,提升多技术方案间组件的通用性和复用率,整体降低视觉改版的研发成本。 一直以来,外卖业务都处于高速发展阶段,人员规模在不断扩大,项目复杂度在持续增加。目前平台承载了美团餐饮、商超、闪购、跑腿、药品等多个业务品类,用户入口也覆盖了美团App外卖频道、外卖App、大众点评等多个独立应用。因为客户端一直比较侧重业务开发,为了满足业务快速上线的需求,UI组件并没有统一的实现,而是分散到各个业务场景中,在开发过程中因UI缺乏同一的标准而导致以下问题不断凸显: UI/UE层面 ① UI缺乏标准化的设计规范,在不同App及不同语言平台上设计风格不统一,用户体验不一致。 ② 设计资源与代码均缺乏统一的管理手段,无法实现积累沉淀,无法适应新业务的开发需求。 RD层面 ① 组件代码实现碎片化,存在多次开发的情况,质量难以得到保证。 ② 各端代码API不统一,维护拓展成本较高,变更主题、适配Dark

为 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 附带了测试运行器和断言功能。就算是刚刚接触

4招了解前端单元测试

自作多情 提交于 2020-07-26 23:34:44
随着每个工程的复杂化、代码的高复用性要求和前端代码模块之间的高内聚低耦合的需求,前端工程中的单元测试流程就显得很有其必要。 1.前端单元测试是什么 首先我们要明确测试是什么: 为检测特定的目标是否符合标准而采用专用的工具或者方法进行验证,并最终得出特定的结果。 对于前端开发过程来说,这里的特定目标就是指我们写的代码,而工具就是我们需要用到的测试框架(库)、测试用例等。检测处的结果就是展示测试是否通过或者给出测试报告,这样才能方便问题的排查和后期的修正。 基于测试“是什么”的说法,为便于刚从事前端开发的同行的进阶理解,那我们就列出单元测试它“不是什么”: 需要访问数据库的测试不是单元测试 需要访问网络的测试不是单元测试 需要访问文件系统的测试不是单元测试 --- 修改代码的艺术 对于单元测试“不是什么”的引用解释,至此点到为止。鉴于篇幅限制,对于引用内容,我想前端开发的同行们看到后会初步有一个属于自己的理解。 2.单元测试的意义以及为什么需要单元测试 2.1 单元测试的意义 对于现在的前端工程,一个标准完整的项目,测试是非常有必要的。很多时候我们只是完成了项目而忽略了项目测试的部分,测试的意义主要在于下面几点: TDD(测试驱动开发) 被证明是有效的软件编写原则,它能覆盖更多的功能接口。 快速反馈你的功能输出,验证你的想法。 保证代码重构的安全性,没有一成不变的代码

How do I setup code coverage on my Express based API?

江枫思渺然 提交于 2020-07-18 03:44:49
问题 I've been at this problem for a while and I cannot make the existing solutions work for me. I have a Node.js API written in Express.js. I have been writing tests for the API using Mocha, Chai, and Supertest. These test are mostly integration tests. One test may look like: it('should fail to register a new user without the proper information', function(done) { api.post('/user') .send({}) .expect(400) .expect('Content-Type', /json/) .end(function(err, res) { should.exist(res.body); should.exist