Js单元测试工具 以及 粗浅的对我的快乐运算进行测试
1. Karma的介绍
Karma是Testacular的新名字,在2012年google开源了Testacular,2013年Testacular改名为Karma。Karma是一个让人感到非常神秘的名字,表示佛教中的缘分,因果报应,比Cassandra这种名字更让人猜不透!
Karma是一个基于Node.js的JavaScript测试执行过程管理工具(Test Runner)。该工具可用于测试所有主流Web浏览器,也可集成到CI(Continuous integration)工具,也可和其他代码编辑器一起使用。这个测试工具的一个强大特性就是,它可以监控(Watch)文件的变化,然后自行执行,通过console.log显示测试结果。
2. jasmine介绍
Jasmine是一个用来编写Javascript测试的框架,它不依赖于任何其它的javascript框架,也不需要对DOM。它有拥有灵巧而明确的语法可以让你轻松的编写测试代码。
好了,上面两条都是我在网上找来的,用处不大。
接下来将展示我整个测试过程。
首先的首先 初始化npm 输入npm install
1.首先进入代码所在目录,安装karma,使用命令
npm install --save-dev karma
其中 --save-dev将karma安装到开发环境,会在package.json中添加一条
"devDependencies": {
"karma": "^0.13.22"
}
2.接着初始化karma,使用
karma init
选择使用jasmine,一路回车,最后会生成一个文件karma.conf.js。
在karma.conf.js中设置要测试的目标js以及测试用例js的位置。这里修改files的参数即可,我的配置如下。
// list of files / patterns to load in the browser
files: [
'js/**/*.js',
'test/**/*.js'
],
其中**表示匹配任意数目的任意字符,包括'/'
*也匹配任意字符,但是*不包括'/'。
最后在test中新建一个TestCase.js文件,用来编写测试用例。
这是我的TestCase.js,我只测试了生成结果的正确性(自己构造分数表达式),
describe("A test case on function", function(){
it("test answer", function(){
var f = [];
var a = new Fraction(1,3);
f.push(a);
f.push('+');
a = new Fraction(2,3);
f.push(a);
var i = [];
i.push(f);
expect(1).toEqual(outputFraction(normalizeFraction(showFormula(i))));
});
it("test answer", function(){
var f = [];
var a = new Fraction(7,8);
f.push(a);
f.push('+');
a = new Fraction(2,3);
f.push(a);
var i = [];
i.push(f);
expect('37/24').toEqual(outputFraction(normalizeFraction(showFormula(i))));
});
it("test answer", function(){
var f = [];
var a = new Fraction(1,3);
f.push(a);
f.push('-');
a = new Fraction(2,3);
f.push(a);
var i = [];
i.push(f);
expect('-1/3').toEqual(outputFraction(normalizeFraction(showFormula(i))));
});
});
这里测试了三组数据,分别是1/3+2/3,7/8+2/3,1/3-2/3,手动计算结果传入参数。
在cmd中输入
karma start
后会自动运行chrome浏览器,并且给出测试结果,运行结果如下:

结果显示 测试成功 3组测试数据均通过。
以上,是测试的整个过程。
Js单元测试工具 以及 粗浅的对我的快乐运算进行测试的更多相关文章
- 【JS单元测试】Qunit 和 jsCoverage使用方法
近日在网上浏览过很多有关js单元测试相关的文档,工具,但是,针对Qunit 和 jsCoverage使用方法,缺少详细说明,对于初入前端的人来说,很难明白其中的意思,特此整理这篇文章,希望 ...
- Qunit 和 jsCoverage使用方法(js单元测试)
Qunit 和 jsCoverage使用方法(js单元测试) 近日在网上浏览过很多有关js单元测试相关的文档,工具,但是,针对Qunit 和 jsCoverage使用方法,缺少详细说明,对于初入前端的 ...
- js常用工具
1.反编译工具 .NET Reflector 2.js检查工具 ReSharper 8.0.14.856 官方原版+注册机 JScript Editor Extensions JSEn ...
- 一种数据与逻辑分离的Python单元测试工具
一种数据与逻辑分离的Python单元测试工具 几个概念 TestCase TestCase是一个完整的测试单元,最小的测试执行实体,就是我们常说的测试用例. TestSuite 以某种特性将测试用例组 ...
- 前端测试框架对比(js单元测试框架对比)
前端测试框架对比(js单元测试框架对比) 本文主要目的在于横评业界主流的几款前端框架,顺带说下相关的一些内容. 测试分类 通常应用会有 单元测试(Unit tests) 和 功能测试(Function ...
- js单元测试
最近研究了js的单元测试,分享一下心得. 说起单元测试以前还真是不太了解,这次索性了解一番,测试有很多包含单元测试,性能测试,安全测试和功能测试等几方面,本次只介绍一下单元测试. 前端进行单元测试主要 ...
- js单元测试框架
js单元测试框架 前端测试框架对比(js单元测试框架对比) 本文主要目的在于横评业界主流的几款前端框架,顺带说下相关的一些内容. 测试分类 通常应用会有 单元测试(Unit tests) 和 功能测试 ...
- 单元测试工具 - karma
在离开上一家公司之前,team leader 在我离开前留给了我最后几个关键字:karma,断言库,JASMINE,QUNIT,MOCHA. 可一直拖拖沓沓的,没有去了解.直到今天,才终于抽出心情和时 ...
- 【转】JS模块化工具requirejs教程(一):初识requirejs
随着网站功能逐渐丰富,网页中的js也变得越来越复杂和臃肿,原有通过script标签来导入一个个的js文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
随机推荐
- Centos7 安装Nodejs
使用EPEL安装 EPEL(Extra Packages for Enterprise Linux)企业版Linux的额外软件包,是Fedora小组维护的一个软件仓库项目,为RHEL/CentOS提供 ...
- Python 函数(一)
Python3 函数(基本概念) 1.概念: 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段:通过函数,可以对特定功能的代码进行封装,实现代码的复用. 2. 5.参数传递 (1) P ...
- 纯css实现弹窗左右垂直居中效果
1.HTML <div class="container"> <div class="dialog"> <div class=&q ...
- jQuery上传文件
1.引入资源 <script src="/yami/backend/backres/js/jquery.min.js"></script> <scri ...
- 「PKUSC2018」最大前缀和 LOJ#6433&BZOJ5369
分析: 这个题非常的棒,目测如果去了能AC... 我们考虑一个序列是如何构成的——一个后缀>0的序列,和一个前缀<0的序列 问题可以简化为求出当前缀和为状态S的所有数的和的时候,S满足后缀 ...
- Python3入门(十)——调试与测试
一.异常处理 1.try...except...finally... 这个也就是Java里的try...cath..finally...了,直接看经典代码: try: print("开始执行 ...
- Exp2 MAL_后门原理与实践 20155214
目录 Exp2 MAL_后门原理与实践 实验内容 通过nc反向连接创建后门 meterpreter应用 主要思路 知识点 启发 Exp2 MAL_后门原理与实践 本次实验操使用nc实现win,mac, ...
- 2017-2018-2 20155224『网络对抗技术』Exp4:恶意代码分析
原理与实践说明 实践目标 监控你自己系统的运行状态,看有没有可疑的程序在运行. 分析一个恶意软件,就分析Exp2或Exp3中生成后门软件:分析工具尽量使用原生指令或sysinternals,systr ...
- 20155233 《网络对抗》Exp4 恶意代码分析
使用schtasks指令监控系统运行 先在C盘目录下建立一个netstatlog.bat文件,用来将记录的联网结果格式化输出到netstatlog.txt文件中,netstatlog.bat内容为: ...
- 2015306 白皎 《网络攻防》EXP6 信息搜集与漏洞扫描
2015306 白皎 <网络攻防>EXP6 信息搜集与漏洞扫描 一.问题回答 (1)哪些组织负责DNS,IP的管理. 顶级的管理者是Internet Corporation for Ass ...