八宝网站源码分享,八宝游戏官网

今天给各位分享八宝网站源码分享的知识,其中也会对八宝游戏官网进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

确定单元测试方案

选取作为JavaScript单元测试的对象,选用Sublime作为JavaScript开发工具,下载并安装Node.js、Git和Sublime工具,使用Mocha进行单元测试,并通过覆盖率分析来辅助进行单元测试。

Node.js、Sublime与Mocha的安装

从Node.js网站(https://nodejs.org/en/)上下载Node.js安装包并安装,安装路径可以使用C:\\nodejs\\。

安装完成以后,Node.js环境是否可用,可以在命令行方式下通过输入“node-v”来判断,如果显示类似下列内容的信息,说明Node.js运行环境已经就绪:

从Sublime网站(https://www.sublimetext.com/3)上下载Sublime安装包并安装。Mocha软件是一个开源的JavaScript测试框架,它和Jasmine一起作为JavaScript语言中最为流行和常用的两款单元测试框架,但是它自带的功能比Jasmine更为强大。可以通过Mocha官网(http://mochajs.org)的学习资料快速学习Mocha的使用,因为其官网主页就是全套基本教程。将本实验压缩包(https://pan.bnuz.edu.cn/l/yo7MtF)中的mocha-demos-master文件夹拷贝到你的计算机中,如C:\\mochademos-master。然后在命令行窗口中进入这个文件夹,安装依赖文件:

npminstall

上面代码会在目录内部安装Mocha,为了操作的方便,在全面环境也安装一下Mocha:

npminstall–globalmocha

编写测试脚本

Mocha的作用是运行测试脚本,首先必须学会写测试脚本。所谓&34;,就是用来测试源码的脚本。

1.源码脚本代码:

除法division

加法addition

减法subtraction

乘法multiplication

要测试这个源码脚本模块是否正确,就要写测试脚本。通常,测试脚本与所要测试的源码脚本同名,但是后缀名为.test.js(表示测试)或者.spec.js(表示规格)。比如,division.js的测试脚本名字就是division.test.js。

2.测试脚本代码:除法division

加法addition

减法subtraction

断言库的用法

上面的测试脚本里面(除法division为例),有一句断言:

expect(division(8,4)).to.be.equal(2);

所谓&34;,就是判断源码的实际执行结果与预期结果是否一致,如果不一致就抛出一个错误。上面这句断言的意思是,调用division(8,4),结果应该等于2。所有的测试用例(it块)都应该含有一句或多句的断言。它是编写测试用例的关键。断言功能由断言库来实现,Mocha本身不带断言库,所以必须先引入断言库:

varexpect=require(&39;).expect;

断言库有很多种,Mocha并不限制使用哪一种。上面代码引入的断言库是chai,并且指定使用它的expect断言风格。expect断言的优点是很接近自然语言,下面是一些例子:

//相等或不相等expect(4+5).to.be.equal(9);expect(4+5).to.be.not.equal(10);expect(foo).to.be.deep.equal({bar:&39;});//布尔值为trueexpect(&39;).to.be.ok;expect(false).to.not.be.ok;//typeofexpect(&39;).to.be.a(&39;);expect({foo:&39;}).to.be.an(&39;);expect(foo).to.be.an.instanceof(Foo);//includeexpect([1,2,3]).to.include(2);expect(&39;).to.contain(&39;);expect({foo:&39;,hello:&39;}).to.include.keys(&39;);//emptyexpect([]).to.be.empty;expect(&39;).to.be.empty;expect({}).to.be.empty;//matchexpect(&39;).to.match(/^foo/);

基本上,expect断言的写法都是一样的。头部是expect方法,尾部是断言方法,比如equal、a/an、ok、match等。两者之间使用to或to.be连接。如果expect断言不成立,就会抛出一个错误。事实上,只要不抛出错误,测试用例就算通过:

it(&34;,function(){});

上面的这个测试用例,内部没有任何代码,由于没有抛出了错误,所以还是会通过。

Mocha的基本用法

有了测试脚本以后,就可以用Mocha运行它。输入命令mocha:

上面的运行结果表示,测试脚本通过了测试,一共有4个测试用例,耗时是13毫秒。

生成报告

首先需要利用如下命令安装mochawesome报告模块:

npminstall–save-devmochawesome

然后使用如下命令生成报告(注意路径):

C:\\mocha-demos-master>mocha–reportermochawesome

于是在mochawesome-report目录便出现了测试报告(mochawesome.html):

利用Istanbul执行覆盖率分析

测试的时候,我们常常关心,是否所有代码都测试到了。这个指标就叫做&34;(codecoverage)。它有四个测量维度。行覆盖率(linecoverage):是否每一行都执行了?函数覆盖率(functioncoverage):是否每个函数都调用了?分支覆盖率(branchcoverage):是否每个if代码块都执行了?语句覆盖率(statementcoverage):是否每个语句都执行了?Istanbul是JavaScript程序的代码覆盖率工具,这个软件以土耳其最大城市伊斯坦布尔命名,因为土耳其地毯世界闻名,而地毯是用来覆盖的。Istanbul是一个npm模块,安装非常简单,利用如下命令就可以安装:

npminstall-gistanbul

在实际的项目开发与测试时,istanbul总是与测试框架结合使用,比如以上文所介绍的Mocha框架为例,我们可以用如下命令进行覆盖率的分析(需要在test目录中执行):除法division

加法addition

减法subtraction

以上结果说明,测试代码中有8个语句(statement),执行了8个;有0个分支(branch),执行了0个;有3个函数,调用了3个;有8行代码,执行了8行。这条命令同时还生成了一个coverage子目录,其中的coverage.json文件包含覆盖率的原始数据,coverage/lcov-report是可以在浏览器打开的覆盖率报告,其中有详细信息,到底哪些代码没有覆盖到:

除法division

加法addition

减法subtraction

关于八宝网站源码分享,八宝游戏官网的介绍到此结束,希望对大家有所帮助。

Published by

风君子

独自遨游何稽首 揭天掀地慰生平