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文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
随机推荐
- SNAT和DNAT
1.SNAT iptables防火墙 Centos6.6 64位 iptables 内网:eth0 172.16.4.1 外网:eth 112.112.112.112/24 当有用户访问公网时,修改用 ...
- Elasticsearch 简介
1. 背景 Elasticsearch 在公司的使用越来越广,很多同事之前并没有接触过 Elasticsearch,所以,最近在公司准备了一次关于 Elasticsearch 的分享,整理成此文.此文 ...
- CoreFoundation对象的内存管理
近来没什么新项目做,想学习一些swift开源项目,看了几个文件感觉有点懵,可能水平还没达到,等用到具体内容的时候再去仔细看吧. 关于现在的项目,想想单元测试还可以完善一下,就在framwork工程中写 ...
- 服务发现比较:Consul vs Zookeeper vs Etcd vs Eureka
原文:https://blog.csdn.net/dengyisheng/article/details/71215234 服务发现比较:Consul vs Zookeeper vs Etcd vs ...
- 20155218 Exp1 PC平台逆向破解(5)M
20155218 Exp1 PC平台逆向破解(5)M 1. 掌握NOP.JNE.JE.JMP.CMP汇编指令的机器码 NOP:NOP指令即"空指令".执行到NOP指令时,CPU什么 ...
- EZ 2018 04 01 ZJOI2018模拟赛04.01
现在开始填以前的坑 这次老叶强制我们打一下这次省选题,然后我已经做好了掉Rating到死的准备 然后考完--莫名涨了 Orz 题目链接 由于很多东西我都不会,所以详细请看:dalao的题解 T1 我T ...
- AT24C02跨页写数据
AT24C02 EEPROM的写数据分为:字节写数据模式和页写数据模式:字节写就是一个地址一个数据的写,页写是连续写数据,一个地址多个数据的写,但是页写不能自动跨页,如果超出一页长度,超出的数据会覆盖 ...
- 【LG3768】简单的数学题
[LG3768]简单的数学题 题面 求 \[ (\sum_{i=1}^n\sum_{j=1}^nij\text{gcd}(i,j))\text{mod}p \] 其中\(n\leq 10^{10},5 ...
- 如何完全卸载VS2010(亲自体验过) (转)
1.首先用360卸载,当卸载完成后,提示有残余的话,就强力清除 2,接着,下载IobitUninstaller工具 3.按照下面进行卸载 1.Microsoft .NET Framework 4 框架 ...
- libgdx退出对话框
package com.fxb.newtest; import com.badlogic.gdx.ApplicationListener; import com.badlogic.gdx.Gdx; i ...