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

前端自动化测试工具 overview

TDD vs BDD: TDD(Test Drivin Development)是测试驱动开发,强调的是一种开发方式,以测试来驱动整个项目,即先根据接口完成测试编写,然后完成功能时要不断通过测试,最终目的是通过所有测试...,用 Mocha + Chai + Sinon 这种方式会想对舒爽一点。...&& Slimerjs 这两个框架一样,都是提供了无界面的真实浏览器测试环境,可以让你在node对真实浏览器的dom进行操作和测试,不同的就是Phantomjs基于webkit(chrome),而Slimer...当我们有需要在真实浏览器环境测试时可以考虑这两个框架 测试任务管理工具 Karma ?...等无头浏览器环境 可控制自动化测试流程,比如编辑器保存时自动全部全部测试用例 强大适配器,可以karma上面配置jasmine,mocha等单元测试框架。

2.2K110

前端自动化测试工具 overview

TDD vs BDD: TDD(Test Drivin Development)是测试驱动开发,强调的是一种开发方式,以测试来驱动整个项目,即先根据接口完成测试编写,然后完成功能时要不断通过测试,最终目的是通过所有测试...,用 Mocha + Chai + Sinon 这种方式会想对舒爽一点。...&& Slimerjs 这两个框架一样,都是提供了无界面的真实浏览器测试环境,可以让你在node对真实浏览器的dom进行操作和测试,不同的就是Phantomjs基于webkit(chrome),而Slimer...当我们有需要在真实浏览器环境测试时可以考虑这两个框架 测试任务管理工具 Karma ?...等无头浏览器环境 可控制自动化测试流程,比如编辑器保存时自动全部全部测试用例 强大适配器,可以karma上面配置jasmine,mocha等单元测试框架。

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

也来扯扯 Vue 单元测试

在这连番的折腾,入过不少坑(当然,很多时候是自己挖坑自己跳),也解锁了不少新姿势。 本文主要扯一扯自己完成这些单元测试,以及迁移到 Jest 过程的一些收获。.../stubs/mocks 的工具(sinon 以及 sinon-chai 插件),一个用于测试的浏览器环境(可以是 Chrome 浏览器,也可以用 PhantomJS)。...这些问题,使用 karma-mocha Chrome 的时候是没有的,因为测试运行于真实的浏览器环境。 ChromeHeadless vs. PhantomJS?...Chrome headless 对于 PhantomJS 来说算是一个致命的打击,特别是 Chrome 官方推出的 puppeteer 短时间内已经被广泛接受和使用。...但其实 PhantomJS 还是有一些适用场景的,例如一些服务器并不支持 Chrome,这种情况下 PhantomJS 就有用武之地了。

1.8K30

12 款 JavaScript 代码测试必备工具

Mocha Mocha 是一个功能丰富的 JavaScript 测试框架,既运行于 Node.js 环境,也可以运行于浏览器环境。...Sinon Sinon.JS 为 JavaScript 提供了独立的 spies、stubs 和 mocks [译者注:Spy、Stub 和 Mock 都是测试专用名词,Stub 常被翻译为桩,spies...它使用强大的 W3C WebDriver API ,用于 DOM 元素上执行命令和断言。 10....针对 PhantomJS, CasperJS 和 PhantomCSS 的 NodeJS 包装器—— PhantomFlow 能够流畅地代码描述用户流程,同时生成用于可视化的结构化树数据。...它是通过下面方式实现的:运行测试套件,获取 DOM 快照并上传到 Percy 服务,最终浏览器渲染之。 —————END————— 看完本文有意思?请分享给更多人 小伙伴们,你怎么看

2.2K100

Twitter工程师聊JS

Javascript 不是一个单一的语言,每个浏览器有自己的JS引擎,不同浏览器和版本之间产生了不少差异 兼容性问题比较麻烦,http://caniuse.com 这个网站给出了各个API不同浏览器下的支持情况...请求每个JS的依赖通常是一个script tag接着一个script tag,很慢 所以出现了JS bundle的概念,把所有依赖都放到一个文件,并压缩 有些工具还支持 hot reloading...和 sourcemaps hot reloading 当文件内容变化时,浏览器动态更新文件 sourcemaps 使debug更加容易,使bundle回到原始形式 Grunt、gulp、broccoli...没有,很多开发者使用Karma,他是一个test runner,Mocha和Jasmine的测试都可以使用Karma运行 我个人的建议是 Karma + Jasmine,如果需要用到浏览器测试时,使用PhantomJS...PhantomJS 是一个没有界面的浏览器,常用来配合自动测试 还有一些其他有用的测试工具: Selenium 可以浏览器中进行真实的集成测试 Sinon 对于AJAX请求类型的测试很有帮助

1.4K60

【Web技术】639- Web前端单元测试到底要怎么写?

设计模式与结构分析 在这个场景设计开发,我们严格遵守 redux 单向数据流 与 react-redux 的最佳实践,并采用 redux-saga 来处理业务流, reselect 来处理状态缓存,通过...中间 store 的内容都是 redux 相关的,看名称应该都能知道意思了。 具体的代码请看这里:https://github.com/deepfunc/react-test-demo。...完整的代码内容 这里 (重要的事情多说几遍,各位童鞋觉得好帮忙去给个 :star: 哈)。...那腕带就是我职业道德的宣告,也是我承诺尽己所能写出最好代码的提示。取下它,仿佛就是违背了这些宣告和承诺似的。 所以它还在我的手腕上。写代码时,我用余光瞟见它。...它一直提醒我,我做了写出整洁代码的承诺

3K30

提高代码质量——使用Jest和Sinon给已有的代码添加单元测试

概述 日常的功能开发,我们的代码测试都依赖于自己或者QA进行测试。这些操作不仅费时费力,而且还依赖开发者自身的驱动。开发一些第三方依赖的库时,我们也没有办法给第三方提供完整的代码质量报告。...下面,我将自己使用Jest和Sinon.js配置和编写单元测试的收获的经验和踩到的坑进行总结,根据从零开始配置和编写单元测试这一条线来进行分享。...; 我的项目中,主要是使用Sinon.js来模拟HTTP请求。...Sinon.js的文档,有专门关于XMLHttpRequest对象的模拟的章节,在下一章,我们将会针对项目中sinon.js的使用进行简单的介绍。...编写单元测试 本章,我们会针对如何编写单元测试文件进行一个具体的讲解,其中包含: 同步函数测试 异步函数测试 HTTP测试 同时,我们会对当中使用到的Jest和Sinon.js的API会进行简单介绍

3.7K00

前端测试驱动开发模式(TDD)快速入门

这样做有以下优缺点: 优点 开始可以比较明确自己要做什么,把错误暴露在整个开发流程比较靠前的位置,修改的成本也比较小 之后对代码优化的过程,因为有测试代码的存在,可以更好的优化代码,优化完之后再执行一遍代码...,而不用担心优化过程又出错 通过测试代码,可以帮助理清楚程序关键点 也更有利于之后的维护 缺点 加上测试的代码,会适当增加一些工作量 可能会测的不全面 总体来说,如果对一些基数设施的建设,比如基础组件等...再执行以下安装语句: npm install sinon moncha chai sinon-chai --save-dev 复制代码 建立一个test文件夹,可以把写测试用例的Js放在这个文件夹,...test": "mocha test/**/*.js" } 复制代码 test建立一个js文件,文件的引入这些工具,为了连接sinon 和 chai,要使用到sinon-chai const chai...run test之后可以执行所有的测试 一般的测试思路 可以先从最简单的开始测试,比如存在某个方法,入参的类型等等 最好是先写测试用例,再写业务代码 用尽量小的成本实现测试 善用throw抛出错误 执行的代码

2.4K20

用CasperJS构建你的网络爬虫

我的例子,我将其命名为index.js。...casper.start(); casper.open("http://techmeme.com"); Casper使用承诺框架来帮助你以有序的方式运行所有内容。首先,你需要使用then函数。...我们的案例,它是与第二类相关的div。 CasperJS附带一个评估(evaluate)函数,它允许你从页面内运行JavaScript,并且可以让该函数返回一个变量以供进一步处理。...本例,你会注意到我使用的是普通的旧DOM方法而不是jQuery,不过如果你希望evaluate函数中使用jQuery,则可以使用jQuery: var links = this.evaluate(...本系列的下一篇文章,我将研究如何从网页下载图像,并且还将讨论如何使用CasperJS内置的文件系统函数,这些函数比你将习惯使用来自Node.js的函数更加受限.

2K30

使用mocha编写node服务单元测试

而测试用例如何来判断函数是否正常执行呢?这时候就要用到断言了。 chai断言库 mocha可以搭配你喜欢的任何断言库,经常使用到的有chai断言库。...异步逻辑 上述的单测例子里,被测试的函数只有同步逻辑,而在js,异步逻辑无处不在。那么对于异步逻辑需要怎么测试呢?...我们可以mocha启动时传入timeout参数,或者测试用例显示声明该测试用例的超时时间。...这时候就需要引入sinon来帮助我们替换掉这些难以模拟的逻辑。 sinon库提供了三种功能:spies、stub和mock。...}) after(function() { // 本组测试用例结束后会执行 }) beforeEach(function() { // 本组每个测试用例开始前会执行

3.9K20

分布式知识总结

一致性级别强一致性:承诺始终能读取到最新写入的数据,代价是相对高的延迟。弱一致性:不承诺可以立刻读取到最新写入的数据,但尽可能保证到某个时间级别后读到最新的数据。...弱一致性又可分:会话一致性:保证同一客户端会话的强一致性,其他会话不保证。用户一致性:保证同一用户的强一致性,其他用户不保证。最终一致性:保证经过一段时间后最终会达到一致性的特殊弱一致性。...一致性哈希哈希算法分布式集群的应用场景:请求的负载均衡,对于请求IP进行哈希,然后对集群节点数取模,可以映射到具体节点上。...分布式锁是分布式系统实现的锁,控制不同节点上对同一资源的并发访问。...客户端存根收到请求将方法、入参等信息序列化成能够网络传输的消息体。客户端存根找到远程的服务地址,将消息通过网络发送给服务端。服务端存根收到消息进行反序列化,然后调用本地服务进行处理。

13710

Vue 测试速成班

测试,我们可以断言这个元素的内容。...我们很容易测试完成真实的请求,但这会使得测试变得脆弱,并且对外部形成依赖。为了避免这种情况,我们可以在运行时更改请求的实现。...但有一个问题我们仍然不能回答:应用程序可以浏览器运行吗?使用 Cypress 编写的端到端测试可以告诉我们答案。...我们可以同步地命令运行程序浏览器执行什么操作。 访问了主页(visit)之后,我们可以通过 CSS 选择器访问页面的 HTML。我们可以使用 contains 来断言元素的内容。...测试的最后,我们检查内容是否更改。 总结 我们已经介绍完了所有的测试用例,从一个函数的基本单元测试到实际浏览器运行的端到端测试。

2.7K10

用 jest 单元测试改善老旧的 Backbone.js 项目

对于这样的既有项目,之前的文章也进行过分析,常常面临依赖不清、封装混乱,以及缺乏测试等问题;对之进行维护和新需求开发时,结合其本身特点, TDD 的方式下进行渐进的改善,而非推倒重来,无疑是个可行的办法...'npm.cmd' : 'npm', args: ['test'] } }, 这样之后的 build 任务,一旦有单元测试未通过,整个流程将停止执行。..._appFacade = facade; module.exports = facade; 测试套件 model 之前引入这个模块就可以了: // __test__/models/CardBinding.spec.jsimport...("有效期截至2014-09-20"); server.restore(); }); 处理用 require.js 的 text 插件引入的模板 Backbone.js + Require.js 测试的一个小问题是...Backbone.View 视图组件经过 ES6 升级和合理封装后,可以明显改善页面的整洁度,并顺利应用于单元测试 可以用 sinon.createFakeServer() 拦截 Backbone.Model

3.4K10

如何模拟一个XMLHttpRequest请求用于单元测试——nise源码阅读与分析

概述 我们进行单元测试的过程,如果我们需要对一些HTTP接口进行相关的业务测试,那么我们就需要来模拟HTTP请求的发送与响应,否则我们就无法完成测试的闭环。...Sinon引用的HTTP模拟框架nise。...它是Sinon.js的一部分,用来处理HTTP相关测试问题。 该库提供了替换原生的XHR对象和Server相关的接口,但是我们本文中只介绍关于XHR部分,也就是浏览器的XHR对象的替换。...而我们进行HTTP相关测试时,参数是由我们传入的,因此不需要进行验证。所以我们最终需要验证的其实是callback的处理逻辑和结果。因此,我们可以通过以下一个示例来看下它如何与业务代码进行结合。...附录 Sinon.js nise 我folk的nise

2.4K10

【技术创作101训练营】RPC  的前世今生

user-stub负责将目标程序的规范和参数放置一个或多个包(打包),并请求RPCRuntime将这些包可靠地传输给被调用者机器。...某些系统,客户端会永远挂起。 另一种可能是让客户端存根向服务器发送消息时启动计时器。如果在某个时间间隔之后没有响应,它会一次又一次地尝试。...CORBA 的承诺是,通过使用映射,远程调用可以作为本地调用出现,分布式系统相关的异常可以映射到本地异常,并由本地异常处理机制处理。...SOAP是一个严格定义的信息交换协议,使用XML作为RPC新的对象序列化机制,用于Web Service把远程调用和返回封装成机器可读的格式化数据。...Avro是一个基于二进制数据传输高性能的中间件,2009年成为Hadoop 的一个子项目,并与2015年脱离Hadoop,加入Apache成为一个独立的项目。

1.7K00
领券