10个可靠的Js测试工具小白攻略_测试小白知识

测试JavaScript代码的需求直截了当。如何防止错误,并确保应用程序在浏览器中或Node.js上顺利运行?幸好,开发人员在JavaScript测试方面有很多选择。JavaScript生态系统拥有用于单元测试、集成测试和功能测试的测试运行工具和框架,并涵盖Node.js和浏览器以及Angular和React等框架。下面是JavaScript开发人员可以帮助

10个可靠的Js测试工具小白攻略

测试JavaScript代码的需求直截了当。如何防止错误,并确保应用程序在浏览器中或Node.js上顺利运行?幸好,开发人员在JavaScript测试方面有很多选择。

10个可靠的Js测试工具小白攻略_测试小白知识

JavaScript生态系统拥有用于单元测试、集成测试和功能测试的测试运行工具和框架,并涵盖Node.js和浏览器以及Angular和React等框架。下面是JavaScript开发人员可以帮助测试应用程序的其中10个工具。

AVA

AVA是Node.js测试运行工具,提供简洁的API、详细的错误输出并支持新的语言功能和进程隔离。AVA适合测试Node.js模块和服务器应用程序,但可能不适合测试UI应用程序。AVA提供了将测试标记为“待办事项”任务的功能。每个测试文件运行都是单独的过程。其他优点包括AVA的简约和速度、简单的测试语法以及同时运行多个测试的功能。AVA还支持异步函数和可观察对象(observable)——可观察对象是一种类型,可用于对DOM事件等基于推送的数据源进行建模。

AVA安装: https://github.com/avajs/ava

Cucumber.js

用JavaScript实现的Cucumber测试工具:Cucumber.js运行于受维护的Node.js版本上和现代Web浏览器中。Cucumber项目提到的优点包括:团队沟通和运行用“普通”语言编写的自动化测试的功能,这意味着团队中任何人都可以阅读它们。因此,可以改善沟通、协作和信任。Cucumber.js包含一个可执行文件来运行测试套件,因此全局安装时不起作用。 (Cucumber在支持文件中必不可少,全局安装的模块并非必不可少。)

Cucumber.js安装: https://github.com/cucumber/cucumber-js

Enzyme

Enzyme是面向React JavaScript UI库的测试实用工具。它旨在使React组件的输出测试起来更容易。开发人员可以根据输出操作、遍历和模拟运行时环境。Enzyme API模仿jQuery API来实现DOM操作和遍历。Enzyme对于测试运行工具或断言库并非固执己见。如果开发人员想使用Enzyme以及自定义断言和便利功能来测试React组件,可以考虑使用chai-enzyme和Mocha/Chai组合、jasmine-enzyme和Jasmine组合或jest-enzyme和Jest组合。Enzyme还可用于测试React Native组件。

Enzyme安装: https://airbnb.io/enzyme/

Karma

Karma是JavaScript的测试运行工具,可以在多个浏览器中执行代码。支持各大浏览器,包括移动浏览器。该项目背后的开发人员称,在Karma提供的环境中,开发人员不必设置大量配置,但可以编写代码并从测试中获得即时反馈。Karma专为低级(单元)测试而设计。 Karma不是测试框架或断言库,它启动HTTP服务器,并使用开发人员青睐的测试框架生成测试运行工具文件。它提供了面向Jasmine、Mocha和QUnit等框架的插件。

Karma安装: https://www.npmjs.com/package/karma

Jasmine

Jasmine号称是用于测试JavaScript的“行为驱动”框架。它不依赖其他JavaScript框架,也不需要DOM。支持者提到其语法有助于轻松编写测试。Jasmine由Pivotal Labs维护,适用于测试网站、Node.js项目以及JavaScript可以运行的任何其他环境。Jasmine旨在为各种不同的使用场景和浏览器带来易于测试的优点,与JavaScript框架无关,这让开发人员能够测试来自React、Angular或其他任何JavaScript库的代码。Jasmine力求最小依赖性,同时保持小巧、易于维护。

Jasmine安装: https://github.com/jasmine/jasmine

Jest

Jest号称是一款全面的JavaScript测试解决方案,对于大多数JavaScript项目而言,开箱即用、无需配置。测试有独特的全局状态,可以并行运行。之前失败的测试先运行,运行根据测试文件的长度重新加以组织。与流行的JavaScript技术兼容,包括Angular、Babel、Node.js、React和Vue。可以运行测试以跟踪庞大对象,快照与测试或嵌入式内联放在一起。在测试文件中,Jest将方法和对象放入到全局环境中,无需导入它们。

Jest安装: https://github.com/facebook/jest

Luna

Luna是一个自成一体的JavaScript单元测试框架,无需配置。产品文档显示,开发人员在几分钟内就可以让第一批单元测试运行起来。生成代码覆盖报告,不用安装其他任何模块。测试必须编写成ES6模块,默认情况下在浏览器中运行测试。支持并发,测试组并行运行。Luna的部分灵感来自面向谷歌Go语言的内置测试。Luna不支持转译(transpiling),因此无法与CoffeeScript或TypeScript兼容。它还缺少对旧版浏览器的支持。

Luna安装: https://github.com/ccampbell/luna

Mocha

Mocha是一个功能丰富的测试框架,在Node.js和浏览器中运行,承诺使异步代码测试起来“简单又有趣”。测试串行运行,支持者称这便于准确而灵活的报告,同时将未捕获的异常与准确的测试用例对应起来。至于持续测试方面,开发人员可以使用Wallaby.js工具,借助任何断言库实现Mocha的实时代码覆盖。Mocha还与应用程序框架集成,比如通过Konacha,这让开发人员可以使用Mocha在Ruby on Rails应用程序中测试JavaScript。还有许多编辑器插件,比如面向Visual Studio Code的Mocha侧边栏扩展。

Mocha安装: https://mochajs.org/#installation

Protractor

Protractor是一款面向Angular及前身AngularJS的端到端测试框架。测试在浏览器中针对应用程序来运行,Proctractor就像用户那样与应用程序进行交互。支持针对Angular的定位器策略,以测试Angular元素,无需任何设置。网页一完成等待的测试,自动等待功能使Protractor能够执行测试下一步。Protractor建立在WebdriverJS的基础上,后者是用JavaScript实现的用于测试的Selenium浏览器自动化工具。

Protractor安装: http://www.protractortest.org/#/

QUnit

QUnit是一个被JQuery、jQuery UI和jQuery Mobile等项目使用的JavaScript单元测试框架。实际上,QUnit最初由jQuery的发明人John Resig开发而成,作为jQuery的一部分。 QUnit号称速度快、易于使用,拥有自成一体但简洁、易于扩展的API,可用于测试任何普通的JavaScript代码。测试或断言失败时,QUnit承诺尽快提供反馈,有足够的细节来查明问题。QUnit中的断言方法遵循CommonJS单元测试规范。QUnit支持有赖于jQuery 3.x的浏览器,包括Chrome、Edge、Firefox、Internet Explorer和Safari的各种版本。

QUnit安装: https://qunitjs.com/

海计划公众号
(0)
上一篇 2020/03/26 23:36
下一篇 2020/03/26 23:36

您可能感兴趣的内容

  • 网页加载过程使用教程_加载菜鸟教程网

    html解析过程1.用户输入网址(假设是个html页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回html文件;2.浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSS文件;3.浏览器又发出CSS文件的请求,服务器返回这个CSS文件;4.浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,

    2020/03/26
  • 网页错误404 not found的解决方法入门百科_404使用教程

    你是否在使用浏览器打开网页的时候会提示404 not found的情况,导致网页打开失败,留下一大堆英文字母。现小编就和大家介绍网页错误404 not found的解决措施。一、404 not found是什么意思? 404 not found是一种标准的HTTP返回代码,当用户输入一个链接时,服务器上的IIS(Internet信息服务)会首先检测

    2020/04/03
  • BearCss使用指南是一个免费的Web应用程序

    BearCss指南攻略 官方网址:http://bearcss.com/ 简介描述:是一个免费的Web应用程序 BearCss是一个免费的Web应用程序,需要你上传一份HTML文档…

    2020/03/06
  • 如何成为一个伟大的 JavaScript 程序员?使用攻略_程序员小白基础

    这篇文章主要概述在我5年工作经验的基础上,我成为优秀JavaScript开发人员所使用的技术和资源。当前大多数Web开发人员面临着这样一个共同的问题:他们必须在多个不同的领域领先于他人——从数据库到后端架构,到前端用户界面,再到使用良好的CSS知识修正用户界面 阅读书籍首先,也是最重要的一点是,你必须付出努力才能脱颖而出。虽然你也可以在无心中获得点点滴滴的积

    2020/03/29
  • ConyEdit基础知识入门_专注于编程的文本编辑器

    ConyEdit基础知识入门 官方网址:https://www.conyedit.com/ 简介描述:专注于编程的文本编辑器 ConyEdit是一款专门为程序员开发的一种全新的代码…

    2020/03/11
  • dowebok使用指南_提供代码、素材、特效、教程、模板等建站服务

    dowebok菜鸟知识 官方网址:http://www.dowebok.com/ 简介描述:提供代码、素材、特效、教程、模板等建站服务 dowebok意为做好网站,为用户提供代码、…

    2020/03/06
  • css3test入门基础知识_检测浏览器对css3的支持度

    css3test入门基础知识 官方网址:https://css3test.com/ 简介描述:检测浏览器对css3的支持度 css3test用于测试浏览器对CSS3 的支持度。目前…

    2020/03/06
  • HTTPS用的是对称加密还是非对称加密?入门基础教程_加密小白入门

    1、引言随着互联网安全意识的普遍提高,对安全要求稍高的应用中,HTTPS的使用是很常见的,甚至在1年前,苹果公司就将使用HTTPS作为APP上架苹果应用市场的先决条件之一(详见《苹果即将强制实施 ATS,你的APP准备好切换到HTTPS了吗?》一文)。所以,无论是即时通讯IM还是其它应用,在网络安全意识增强的今天,很多场景下使用HTTPS是肯定没错的。对于即

    2020/03/21
  • 工程化小白基础前端静态资源缓存策略_缓存菜鸟教程网

    增量更新是目前大部分团队采用的缓存更新方案,能让用户在无感知的情况获取最新内容。具体实现方式通常是(一般我们通过构建工具来实现,比如webpack):构建产出文件hash(如:index.d94f83fac22c203b788c.css)更新html文件里静态资源的引用URL由于其他资源是由html文件直接或间接引用才可以被加载,如果html里的静态资源UR

    2020/03/31
  • 程序员的笔记,编程写软件学到的 7 件事教程视频_编程小白帮助

    我正在一点一点的从一个工程师转型为管理者。别弄错了,虽然我在转管理,但我仍然在每天写代码。不过我发现自己在会议和电话中会花越来越多的时间去分析讨论,试着去组织团队,并且为全局部署而不是具体战术而烦恼。当然这不是一件坏事。高层次的决策往往比单个的类和函数的细节更有影响。让一个团队更有效率,比仅仅让自己更有生产力有更高的杠杆作用。但我想我已经从我多年来的编程中吸

    2020/04/06
  • js洗牌算法:javascript数组随机打乱顺序的实现方法菜鸟教程下载_算法入门基础知识

    有一个数组,我们需要通过js对数组的元素进行随机排序,然后输出,这其实就是洗牌算法,首页需要从元素中随机取一个和第一元进行交换,然后依次类推,直到最后一个元素。Fisher-Yates算法function randArr(arr){for(var i=0;i<arr.length;i++){var random = Math.floor(Math.rando

    2020/04/06
  • Jira零基础入门_Jira和confluence俗称的pms,项目及工作任务管理

    Jira基础教程 官方网址:https://www.atlassian.com/ 简介描述:Jira和confluence俗称的pms,项目及工作任务管理 Millions of …

    2020/03/06
  • javascript代码语句结束要不要加分号?小白指南_代码基础知识教程

    在 C 语言中,分号是语句结束的标志,在语句结束的地方一定要以分号结束。而 JavaScript 的分号却是可选的,若语句都各占一行,则可以省略分号。JavaScript 中的 ASI 机制,允许我们省略分号。ASI 机制不是说在解析过程中解析器自动把分号添加到代码中,而是说解析器除了分号还会以换行为基础按一定的规则作为断句的依据,从而保证解析的正确性。AS

    2020/03/20
  • tinymce与prism代码高亮实现及汉化的配置小白教程_代码使用帮助

    简单介绍:TinyMCE是一个轻量级的基于浏览器的所见即所得编辑器,由JavaScript写成。它对IE6+和Firefox1.5+都有着非常良好的支持。功能方强大,并且功能配置灵活简单。另一特点是加载速度非常快的。最重要的是,TinyMCE是一个根据LGPL license发布的自由软件,你可以把它用于商业应用,好了不多说,想了解更多自行百度,我们进入正题

    2020/04/05
  • JS中this的几种情况小白知识_this使用教程

    1.给元素的某个事件行为绑定方法,事件触发,方法执行,此时方法中的this一般都是当前元素本身:div.onclick = function() {console.log(this); //=>
    };div.addEventListener(‘click’, function (

    2020/03/24
  • 泡面小镇入门知识_一个只发早报的的网站

    泡面小镇入门知识 官方网址:http://www.pmtown.com/ 简介描述:一个只发早报的的网站 泡面早报,泡面早班车,互联网头条,融资新闻,融资消息,互联网新闻&nbsp…

    2020/03/06