Mocha 和 Chai 入门初探

转载自楼主个人博客 Mocha 和 Chai 入门初探

Chai

在和 jest 作比较的时刻, 二者重要的差别就是 jest 的集成度比较高内置断言库, 而 mocha 须要搭配分外的断言库, 在此挑选了比较盛行的 chai 作为断言库.

作风的挑选

个中 chai 又有好几种断言作风, 我们常常见到的实在就是 BDD 作风的 should / expect.

个中我较喜好 should, 由于它能够直接以属性的体式格局嵌入一切内置原生对象, 所以能够很轻易的以 variable.should.equal(someValue) 的情势来誊写断言, 和 expect 相比较能够省略一对 () … 假如是 expect 作风的话, 上述示例代码等价于 expect(variable).to.equal(someValue). 在平常情况下二者的运用时险些雷同的, expect 作为断言的最先, should 接在想要断言的变量以后. 然则有一些处所 should 就须要变更一下我上述所说的写法了.

Should

should 实际上是给一切的对象都扩大了一个 getter 属性 should, 假如你想在浏览器中运转测试的话, should 在 IE 浏览器中会有一些问题. 恰是由于 should 是扩大了 Object.prototype, 所以假如变量的值为 nullundefined 的时刻, 是没法运用 .should.equal() 的情势的, 由于 null, undefined 的原型不是 Object,所以should 不存在. 所以此时应该以下所示运用.

const sould = require('chai').should();

...

should.not.exist.(variable); // variable 的值不该该是 null 或许 undefined

Mocha

如今我们来看看怎样对 mocha 举行设置以及上手的步骤. 我假定在 mocha 中写测试的时刻也一样须要运用 ES6 语法, 另有一个关注点是假如我在 webpack.config.js 中已设置了 alias, 那末在写测试代码的时刻, 我愿望导入的文件也能够运用 alias 来坚持我途径的一致性以及与此同时带来的便利性.

设置

下载依靠

npm install --save-dev mocha chai

接下来只要在项目根目录下新建文件夹 test, 在里面写的测试文件以 *.test.js 定名, 接下来在 packag.json 文件中 设置 npm test 敕令.

"npm test": "./node_modules/.bin/mocha"

还能够在 test 根目录下新建一个设置文件 mocha.opts, 个中设置的选项相当于给 mocha 敕令加入了敕令行参数.

--recursive
--ui bdd

详细的设置请参照文档 Mocha – USAGE.

以后在终端输入 npm run test 即可运转测试.

支撑 ES6

上述只是设置好了基础的运转环境, 假如须要支撑 ES6 的话, 那末还须要两个简朴的步骤.

npm install --save-dev babel-register

然后修正 mocha.opts

--recursive
--ui bdd
--require babel-register

完成, 如今已支撑 ES6 语法了.

支撑 Webpack 的 Alias

假如不须要请跳过此步骤, 须要的引荐一个本人基于一个开源库修正的 babel 插件 babel-plugin-webpack-alias-resolve.

写测试

直接上代码! 有一个对 axios 经由封装的 ajax 函数, 我如今对其举行测试. 下面是代码在 Gist 的地点 the test for ajax which based on axios

完毕

写的很少 … 正在实践当中, 实在测试上述谁人文件的时刻我已踩了一些坑了, 然则写出来照样不够多, 等踩多了总结一下踩过的那些.

    原文作者:chengjianhua
    原文地址: https://segmentfault.com/a/1190000007957897
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞