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组测试数据均通过。
以上,是测试的整个过程。