Js单元测试工具 以及 粗浅的对我的快乐运算进行测试

时间:2022-07-26 18:31:26

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浏览器,并且给出测试结果,运行结果如下:

Js单元测试工具 以及 粗浅的对我的快乐运算进行测试

结果显示 测试成功 3组测试数据均通过。

以上,是测试的整个过程。