搭建Karma+Jasmine的自动化单元测试

栏目: 编程工具 · 发布时间: 5年前

内容简介:最近在打算将以前的代码进行重构,过程中发现自己不写自动化测试代码,而是手动的写,这样并不好,所以就学了Karma+Jasmine的自动化单元测试,以后写代码尽量要写自动化单元测试,也要测一下istanbul代码覆盖率。据我了解,Nodejs领域: Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。Karma是一个基于Node.js的JavaSc

最近在打算将以前的代码进行重构,过程中发现自己不写自动化测试代码,而是手动的写,这样并不好,所以就学了Karma+Jasmine的自动化单元测试,以后写代码尽量要写自动化单元测试,也要测一下istanbul代码覆盖率。

据我了解,Nodejs领域: Jasmine做单元测试,Karma自动化完成单元测试,Grunt启动Karma统一项目管理,Yeoman最后封装成一个项目原型模板,npm做nodejs的包依赖管理,bower做javascript的包依赖管理。

Karma的介绍

Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该 工具 可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。

Karma的安装

我的开发环境:

  • win7 64bit,
  • node v8.11.2
  • npm 5.6.0

1、全局安装karma、Jasmine-core、Karma-Jasmine

npm install -g karma
npm install -g Jasime-core 
npm install -g karma-Jasmine
复制代码

2、局部局安装karma、Jasmine-core、Karma-Jasmine

npm install --save-dev karma
npm install --save-dev Jasime-core 
npm install --save-dev karma-Jasmine
复制代码

3、测试是否安装成功

karma start
复制代码
搭建Karma+Jasmine的自动化单元测试

4、Karma + Jasmine配置

karma init
复制代码
搭建Karma+Jasmine的自动化单元测试

自动化单元测试

1). 创建源文件:用于实现某种业务逻辑的文件,就是我们平时写的js脚本 有一个需求,要实现单词倒写的功能。如:”ABCD” ==> “DCBA”

//src/index.js
function reverse(word){
    return word.split("").reverse().join("");
}
复制代码

2). 创建测试文件:符合jasmineAPI的测试js脚本

//test/test.js
describe("A suite of basic functions", function() {
    it("reverse word",function(){
        expect("DCBA").toEqual(reverse("ABCD"));
    });
});
复制代码

3). 修改karma.conf.js配置文件 我们这里需要修改:files和exclude变量

files: ['./src/*.js'],
exclude: ['karma.conf.js'],
复制代码

4). 启动karma 单元测试全自动执行

karma start karma.conf.js
复制代码
搭建Karma+Jasmine的自动化单元测试

Karma和istanbul代码覆盖率

1、全局安装istanbul依赖karma-coverage

npm install -g karma-coverage
复制代码

2、局部安装istanbul依赖karma-coverage

npm install --save-dev karma-coverage
复制代码

3、修改karma.conf.js配置文件

reporters: ['progress','coverage'], preprocessors : {'src.js': 'coverage'}, coverageReporter: { type : 'html', dir : 'coverage/' } 4、启动karma start

在工程目录下面找到index.html文件,coverage/chrome/index.html

搭建Karma+Jasmine的自动化单元测试

接下来,我们修改src.js,增加一个if分支

function reverse(word){
    if(word=='AAA') return "BBB";
    return word.split("").reverse().join("");
}
复制代码

再看覆盖率报告,下降得有点恐怖

搭建Karma+Jasmine的自动化单元测试

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

ACM图灵奖演讲集

ACM图灵奖演讲集

阿申豪斯特 / 苏运霖 / 电子工业出版社 / 2005-4 / 55.0

本书完整地收录了这些演讲,并配之以部分获奖者撰写的后记,旨在反映过去数年来这一领域中发生的变化。对任何一位计算机科学的历史与发展有兴趣的人来说,本书都极具收藏价值。  本文收录了自图灵奖开始颁发的1966年起到1985年这20年间图灵奖获得者在授奖大会上所做演讲的全文。由于在此期间有三次是把奖项同时授予两个人的,而其中有两次两位获奖者分别做了演讲,因此一共收录了22篇演讲稿。本书把这些演讲分为两大......一起来看看 《ACM图灵奖演讲集》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

MD5 加密
MD5 加密

MD5 加密工具

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具