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文件这种方式已经不能满足现在互联网开发模式,我们需要团队协作.模块复用.单元测试等等一系列复杂的需求 ...
随机推荐
- Python基础(9)——类
类的语法 类的定义 class Dog(object): print("hello,I am a dog!") d = Dog() #实例化这个类, #此时的d就是类Dog的实例化 ...
- APR Recipe
1, pt fix 后生成的 icctcl,回到 icc source 后,如果需要eco_route,建议先关掉 timing_driven,因为 icc 与 pt 看到的 timing 情况一般 ...
- HDU 1203 I NEED A OFFER!(01背包+简单概率知识)
I NEED A OFFER! Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Sub ...
- keepalived 做全端口映射
global_defs { lvs_id BACKUP } vrrp_sync_group VGM { group { VI_1 } } vrrp_inst ...
- C#构造方法--实例化类时初始化的方法
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...
- Feeling_2018_5_22
“我打你,你会走吗?” “不会!!” “我骂你,你会走吗?” “不会!!” “那我不爱你了,你会走吗?” “会.”
- SqlServer执行大的数据库脚本出错解决方法
如果执行线上项目拷下来sqlserver的.sql的数据库脚本文件,如果文件较大时,那么就会报错内存不足之类的. 这时可以在命令提示符使用命令来执行脚本文件.切记,执行前先改一下数据库存放位置! 命令 ...
- 在win10环境中安装xilinx vivado IDE时出现的问题及解决方法
1.问题:There is no valid Xilinx installation that this Update can be applied to. 解决方法一:下载的是更新包,如果设备没有预 ...
- 使用selenium进行自动化测试
selenium 支持多个客户端:ruby,Java,python.可以用来对网页进行全面测试,支持真实浏览器测试. firefox IE chrome safari 支持多操作系统: Linux w ...
- jQuery.bsgrid
http://thebestofyouth.com/bsgrid/ 支持json.xml数据格式,皮肤丰富并且容易定制,支持表格编辑.本地数据.导出参数构建等实用便捷的功能,容易扩展,更拥有丰富的示例 ...