使用摩卡和柴(摩卡)

本站:VPS评测参考推荐/专注分享VPS主机优惠信息!若您是商家可以在本站进行投稿,查看详情!此外我们还提供软文收录、PayPal代付、广告赞助等服务,查看详情!
我们发布的部分优惠活动文章可能存在时效性,购买时建议在本站搜索商家名称可查看相关文章充分了解该商家!若非中文页面可使用Edge浏览器同步翻译!PayPal代付/收录合作

这一次,我将带你使用摩卡和柴。摩卡和柴的使用注意事项是什么?以下是实际案例。让我们看一看。

Mocha Mocha简介Mocha是流行的JavaScript测试框架之一,通过它可以添加和运行测试以确保代码质量。

Mocha的安装和配置

摩卡也安装在npm install -g摩卡项目中。

Npinstall --save-devmocha将以下脚本添加到package.json中:

"脚本 :{ 测试 : 摩卡 }使用}摩卡在使用之前,我们先来看看我们使用的测试项目的结构:

如上图所示,测试文件需要放在测试目录下,测试目录下的所有js文件都会被mocka运行时执行(只在test以下的级别,不在test/subtest级别)。

其中index.js是我们的测试代码:

/* * *加法函数* @ param { first number } a * @ param { second number } b */function addnum(a,b){ return a+b;} module.exports = addNum而index.test.js是我们的测试代码(注意这里的名字加了一个测试,不是必须的,只是为了区分哪些是测试文件):

var addNum = require( # 39;../src/index # 39;)形容( # 39;Test index.js # 39,function(){ describe( # 39;测试addNum函数 # 39;,function(){ it( # 39;两个数相加的结果是两个数之和 # 39;,function() { if(addNum(1,2)!==3){抛出新错误( 两个数相加的结果不是两个数之和”);} });});});分析上面代码的语法:

在上面的示例中,测试了addNum函数,如果运行不正确,就会引发异常。

此时运行

Nptest可以得到以下结果

为了查看运行错误的结果,此时我们将index.js的代码修改为:

函数addNum(a,b){ return a+B-1;} module.exports = addNum再次运行

npm测试的结果如下:

Mocha和断言库柴在上面的Mocha例子中,通过抛出异常来处理测试失败,有些繁琐,于是出现了断言库。这里我们简介一个常用的断言库柴。可以简单理解为,这是我们上面的异常抛出方法的一个包,当判断失败时,会抛出一个异常。首先安装chai:

NPINSTALL --SAVE -DEV chai然后我们用chai修改上面的index.test.js:

var expect = require( # 39;柴 # 39;).期待;var addNum = require( # 39;../src/index # 39;)形容( # 39;Test index.js # 39,function(){ describe( # 39;测试addNum函数 # 39;,function(){ it( # 39;两个数相加的结果是两个数之和 # 39;,function() { expect(addNum(1,2))to . be . equal(3);});});});上面的语法非常接近自然语言,期望一个表达式的结果等于一个表达式。奔跑

Nptest得到以下结果:

可以看到,图中的断言库也打印了预期结果3和实际结果2。用判断来抛出异常会麻烦得多。

上面的语法是柴的expect语法,它还有should语法和asset语法。如果你用过java和。NET之前,您可能更习惯于使用资产:

var assert = require( # 39;柴 # 39;).断言;assert.typeOf(foo, # 39;字符串 # 39;);assert.equal(foo, # 39;酒吧 # 39;);assert.lengthOf(foo,3)assert.property(tea, # 39;口味 # 39;);assert.lengthOf(tea.flavors,3);这个的语法意义很明显,这里就不赘述了。

更多地使用Mocha如果你想测试一个单独的测试js,你可以使用:

Mocha test/index.test.js或多个js

mocha test/index . test . jstest/add . test . js当然,也可以用通配符测试一个文件夹中的所有js和jsx:

摩卡 # 39;测试/一些/*。@(js | jsx) # 39;摩卡和ES6不在ES6语法里,我们把所有代码都改成ES6语法吧。其中index.js为:

/* * *加法函数* @ param { first number } a * @ param { second number } b */export default(a,b)= >;{ return a+B-1;}而index.test.js是:

从 # 39;导入{assert};柴 # 39;从 # 39;导入addNum../src/index # 39;描述( # 39;Test index.js # 39,()= gt{描述( # 39;测试addNum函数 # 39;,()= gt{ it( # 39;两个数相加的结果是两个数之和 # 39;,()= gt{assert.equal (addnum (1,2),3)}})现在肯定不能直接运行mock。我们现在需要安装巴别塔:

m安装babel -核心babel -预置-es2015--save-dev然后在项目目录下新建一个。babelrc文件:

{ 预设 :[ ;es2015 ]}然后package.json中的脚本改为:

"脚本 :{ 测试 : mocha --编译器js:babel -core/register ;},其中--编译器参数用于指定测试脚本的代码转换器。这一行命令意味着使用babel -核心/寄存器模块来处理。运行mocha时的js文件。

注意:--编译器将来会被移除,官方称之为冗余,替代方案是

"脚本 :{ 测试 : 摩卡--需要babel -核心/注册 },命令变得更简单。

Mocha测试用例执行的超时和高亮显示Mocha默认每个测试用例将执行长达2000毫秒,如果到那时还没有得到结果,将会报告一个错误。以下命令将超时设置为5000:

Mocha -t 5000 index.test.jsMocha默认情况下会高亮显示超过75毫秒的测试用例。以下命令设置高亮判断的临界值:

Mocha -s 1000 index.test.jsMocha测试钩子Mocha在describe块中,提供了测试用例的四个钩子:before()、after()、beforeEach()和afterEach()。它们将在指定的时间被执行。

描述( # 39;Test index.js # 39,()= gt{ before(()= gt;console . info( ;在该块中的所有测试用例之前执行"))(()= >之后;console . info( ;在该块中的所有测试用例之后执行"))beforeEach(()= >console . info( ;在该块中的每个测试用例之前执行"))after each(()= >;console . info( ;在这个块中的每个测试用例之后执行" ))描述( # 39;测试addNum函数 # 39;,()= gt{ it( # 39;两个数相加的结果是两个数之和 # 39;,()= gt{assert.equal (addnum (1,2),3)}})总结一些常用的关于mock和chai的游戏都有讲,但是更多的关于mock的测试结果输出格式,skip test和only test当前用例都没有讲。

相信你看完这个案例已经掌握了方法。更多精彩请关注本站其他相关文章!

推荐阅读:

Vue指令的使用

JS闭包的使用以上是摩卡和柴的使用细节。更多请关注本站其他相关文章!

本文由本站刊发,转载请注明:使用摩卡和柴(摩卡) https://本站.com/80620.html

推荐站内搜索:美国虚拟主机购买、美国服务器、空间网站、https代理ip、虚拟主机空间、游戏高防服务器、防攻击ip、虚拟空间、独立ip主机、免备案jsp空间、