自动化测试(未完,后续进修之后会补充更详细的)

Node assert (断言)

断言是什么
assert 模块供应了一组简朴的断言测试,可用于测试不变量。
存在严厉形式(strict)和遗留形式(legacy),但发起仅运用严厉形式。
简朴说就是用来做测试的
严厉形式的引入: const assert = require('assert').strict;
遗留形式的引入: const assert = require('assert')
API 进修
1. assert.equal(actual, expected[, message])
message 是可选属性,报错抛出message
严厉形式:assert.strictEqual
注重: 只能推断基础数据范例,援用范例不能够推断
    assert.equa(1,1) // true 经由过程
    assert.equa({a:1},{a:1})  // false 未经由过程
    equal  示意 ==
    strictEqual 示意 ===
    // 所以要注重隐式转换的题目比如说
    assert.equa("1",1) // true 经由过程
    assert.strictEqual('1',1) // false 报错
2. assert.deepEqual(actual, expected[, message])
严厉形式: assert.deepStrictEqual(actual, expected[, message])
诠释: 推断期望值和现实值是不是相称,可推断可罗列属性
具有equal函数的雷同功用,也能推断对象,数组
    assert.deepEqual(["1",2],[1,2]) // 经由过程
    // 严厉形式下
    assert.deepStrictEqual(["1",2],[1,2])  //未经由过程
    // 轮回在比较数组中的每个元素
    
    重要就是是运用这2个严厉形式

Mocha 测试框架

Mocha 是一个在Node.js和浏览器上运转的功用雄厚的JavaScript测试框架,使异步测试变得简朴而风趣。
Mocha 测试以串行体式格局运转,许可天真准确的报告,同时将未捕捉的异常映射到准确的测试用例
首先是装置
发起运用项目内里装置mocha,不然悉数装置运用会影响别的项目.记得这是开辟依靠
npm install --save-dev mocha
然后建立一个test 文件夹,一切的测试文件放在test下
  1. 编写测试
接下来我们能够编写测试案例了,新建一个add.js 代码以下
module.exports = function (a,b) {
    return a+b;
};
下面我们就对这个函数举行测试在test文件夹下面新建一个test.js文件上面我们已在项目中装置了mocha
const assert = require('assert');
const add = require('../add.js');
describe('#add', () =>{
    it('sum(3,5) should return 8', () => {
         assert.strictEqual(sum(3,5), 8);
    })
})
这时刻我们来看一下 deescribe 这个函数 能够恣意嵌套多作为一个组,直白点就是给你当解释用的it 函数是一个测试用例 你能够下多个 放在it内里
如今我们要设置测试,我们在package.json内里设置一个test定名 对应 mocha 就能够了.
运转 npm test 那末一个测试就完成了
另有一些生命周期的函数,能够把下面这段代码增加进
describe('#add', () =>{
    before(function () {
            console.log('before:');
        });

        after(function () {
            console.log('after.');
        });

        beforeEach(function () {
            console.log('  beforeEach:');
        });

        afterEach(function () {
            console.log('  afterEach.');
    });
    it('sum(3,5) should return 8', () => {
         assert.strictEqual(sum(3,5), 8);
    })
})
  
  能够看一下这个生命周期,相识一下.
  1. 异步测试
用mocha测试一个函数是异常简朴的,然则,在JavaScript的天下中,更多的时刻,我们编写的是异步代码,所以,我们须要用mocha测试异步函数。
这里触及一个新的知识点 async 函数,能够有的小伙伴不太会,这里烦琐一下,由于我也不太懂
async 函数
    我明白的 async
    
    之前我们运用 callback。

    厥后我们运用 Promise。

    如今我们运用 Async/Await。
    
    Async - 定义异步函数(async function someName(){...})
    - 自动把函数转换为 Promise
    - 当挪用异步函数时,函数返回值会被 resolve 处置惩罚
    - 异步函数内部能够运用 await
    
    Await - 停息异步函数的实行 (var result = await someAsyncCall();)
    - 当运用在 Promise 前面时,await 守候 Promise 完成,并返回 Promise 的效果
    - await 只能和 Promise 一同运用,不能和 callback 一同运用
    - await 只能用在 async 函数中
    
修正函数以下
 module.exports =  async ()=>{
    let num = await setTimeout(() =>{
        return 1
        console.log(1)
    },1000)
    return num
}
然后编写一个测试函数
const assert = require('assert')
const sum = require('../add')
describe("#add", () =>{
   it("测试异步", async () =>{
       let result = await sum()
       console.log(result)
       console.log(1)
   })
})

运转 npm test  检察效果.
  1. Http测试

    <font color=red>临时还没写</font>

karma

Karma的重要目的是为开辟人员供应高效的测试环境。
环境是他们没必要设置大批设置的环境,而是开辟人员能够编写代码并从测试中取得立即反应的处所。
由于取得疾速反应是让您富有成效和创造力的缘由。
装置
发起的要领是在项目目次中当地装置Karma(以及项目须要的一切插件)。
# Install Karma:
$ npm install karma --save-dev

# Install plugins that your project needs:
$ npm install karma-jasmine karma-chrome-launcher jasmine-core --save-dev
这将装置karma,karma-jasmine,karma-chrome-launcher和jasmine-c到node_modules当前事情目次,
也能够作为保留这devDependencies的package.json,
所以,任何其他开辟项目事情会只要如许做npm install才获得一切这些依靠装置。
# Run Karma:
$ ./node_modules/karma/bin/karma start

官网发起装置一个全局的 轻易敕令
npm install -g karma-cli
怎样集成到项目内里

Travis CI

Travis CI是一种盛行的延续集成效劳,它与您的Github存储库集成,
可在推送代码时自动运转测试。经由过程向项目根目次增加一个简朴的YAML文件来完成集成 ;
Travis和Github担任其他的事情。每当测试时,Travis效果将出如今您的Github拉取要求中,
您的历史记录将在其控制面板中供应。本文假定您已具有Travis帐户。
设置
首先是去 travis官网去注册一下 用GitHub账号
然后回读取你的GitHub项目开源的,内里有个设置 翻开就好了.Travis会在代码push时收到GitHub关照,然后自动猎取最新代码,举行CI。
然则我们照样须要编写一个.travis.yml文件来通知Travis一些项目信息
language: node_js

node_js:  

     - 0.4  

     - 0.6
前端的设置


package.json 内里要设置个敕令
"scripts": {
    "test": "mocha"
  },
  
  
 Mocha 已装置过全局了

然后push的时刻就自动触发 npm test

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