美文网首页
Mocha(未完待续)

Mocha(未完待续)

作者: Carmen_e69d | 来源:发表于2019-03-22 17:38 被阅读0次

Mocha(未完待续.)

  • 定义
  • 安装
  • 起步
  • Describe()it()
  • 多次使用done
  • ASSERTION(断言)和断言库的使用
  • 异步代码
    • Promise
    • Async和Await
  • 同步代码
  • 箭函数

定义

Mocha是一个能够运行在node和浏览器的JavaScript测试框架。

安装

$ npm install --global mocha//全局安装
$ npm install --save-dev mocha //局部依赖包
安装

起步

在项目的package.json设置一个测试脚本
"scripts": {
  "test": "mocha"
}
然后在终端中运行 npm test 便可以进行测试

Describe()和it()

describe块称为“测试套件”,表示一组相关的测试。它是一个函数,第一个参数多是测试套件的名称,后面的参数是要测试的函数。
it块称为“测试用例”,表示一个单独的测试,是测试的最小单位。它是一个函数,第一个参数多是测试套件的名称,后面的参数是实际执行的函数。

多次使用done()

在基于回调的异步测试,多次使用done()会报错。

it('double done', function (done){
//使用两次done()
setTimeout(done);
setImmediate(done);
});

ASSERTION(断言)和断言库的使用

ASYNCHRONOUS CODE(异步代码)

测试异步代码,需要在测试完成时调用回调函数。通过添加一个回调函数(通常命名为done)给it(),mocha就能知道测试完这个函数之后就能完成测试。这个回调函数可以接受error或虚值。

describe('异步',function(){
it('代码测试',function(done){
    var x=true
    var test=function(){
        x=false
        console.log(x)
        done()
    }
    setTimeout(test,1000)
             })
})

Promise

除了使用done()回调函数,可以返回一个promise对象。当使用的APIs返回的是一个promise对象会更高效。

describe('Promise', function()
{
it('test', function(){
    const p = new Promise(function (resolve, reject)
    {
        resolve('ok');
    }
).
    then(result => result);
})
}
)

Mocha v3.0.0和更新版本,同时返回一个promise对象和done回调函数会导致异常。

describe('同时返回done和promise对象',function(){
it('test', function(done) {
  return new Promise(function(resolve) {
    resolve('ok');
}).then(done);
})
})

Async和await

如果js环境支持Async和await,可以使用该方法

describe('使用async/await',function(){
it('test',async function(){
    const p = await {
        async function(){
            await 100
        }
    }
    p
})
})

SYNCHRONOUS CODE(同步代码)

当在使用同步代码时,去掉回调函数 Mocha会自动一条一条地执行语句。

describe('同步代码',function(){
describe('用正则表达式测试十六进制值',function(){
    describe('测试#b8b8b8',function(){
        it('test',function(){
            let pattern=/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
            let s=pattern.test("#b8b8b8")
            let a=new Array([1,2,3]);
            let b=a.indexOf(0);
        })
    })
})
})

ARROW FUNCTIONS(箭头函数)

不建议用箭头函数,因为箭头函数绑定了this,不能访问到Mocha的上下文

相关文章

  • Mocha(未完待续)

    Mocha(未完待续.) 定义 安装 起步 Describe()和it() 多次使用done ASSERTION(...

  • 初识前端测试4 -- karma 和 mocha

    mocha 关于mocha的基础使用可以参考之前预习的时候写的mocha 基础使用。这里总结了一些基础的mocha...

  • Mocha!Mocha!

    去年人设作业创作的卡通人物:小怪物Mocha 做了两则四格漫画

  • 2018-06-15 mocha 测试安装

    昨天的mocha安装任务没有完成,今天继续 1.学习Mocha,中文文档自己找。 2.测试框架 Mocha 实例教...

  • Mocha入门

    官网地址 一、Getting Started 初始化:npm init 安装mocha:npm i mocha -...

  • 初识前端测试3 -- mocha

    mocha 在第一小结中的测试中用到了 mocha 框架,这一节就说说 mocha 框架吧。下面整理的内容主要来源...

  • 「叶半居随笔」阿秋和她的猫

    mocha是阿秋养的猫,自从mocha离开以后,阿秋每天都在想念他。可是,她从来都没有梦到过他。 mocha有和阳...

  • nodejs TDD 测试驱动开发

    nodejs 下的单元测试工具,推荐使用mocha 安装 npm install mocha —save-dev ...

  • 4.vue造轮子-自动化测试

    使用 Karma + Mocha做单元测试使用 Karma + Mocha做单元测试使用 Karma + Moch...

  • Mocha

    测试框架Mocha现在流行的JavaScript测试框架之一,在浏览器和Node环境中都可以使用。一、安装我为本文...

网友评论

      本文标题:Mocha(未完待续)

      本文链接:https://www.haomeiwen.com/subject/vmbrvqtx.html