关于我半路又学起了单元测试这件事-mocha

发布时间 2023-11-09 17:06:22作者: 云冬

学习mocha

  1. 大概结构
/**
 * @desc describe 是全局的入口函数 整个函数使用回调嵌套写法
 *
 * 1.done   在非it函数调用时 若一个使用了 done 则全部函数都要使用 否则无法进入下一步 (迭代器规则),在it中形参声明了 done  就必须要调用 同理
 *
 * 2. 像before beforeEach after afterEach 这类周期函数 有区别  ; before 只在启动时调用一次 each 会在每次测试执行前后调用
 *
 * 3. 延时与异步  这类函数需要使用done否则不生效
 *
 * 4.不要使用箭头函数,会有作用域穿透风险
 *
 *
 */

describe('测试淘宝类', function () {
    console.time('全局的延时')
    this.timeout(200)
    console.timeEnd('全局的延时')
    before(function (done) {
        //     这个在当前作用域只会执行一次,与each有区别
        done()
    })
    beforeEach(function (done) {
        // 这个是每次测试都会执行一次 ,有遇到 异步代码请调用传入的形参 done()
        console.log("先执行一次时间间隔函数");
        Taobao.timeCheck.do()
        this.timeout(3000); // A very long environment setup.
        setTimeout(done, 2500);
    })
    it('should 生效间隔检查函数', (done) => {
        let flag = Taobao.timeCheck.do(2000)
        assert.equal(flag, true, '校验限制是2秒 因为倒计时五秒 应该为true')
        done()

    });
    it('测试淘宝请求时间间隔检查函数', (done) => {
        assert.equal(Taobao.timeCheck.do(), false, '默认间隔是120秒 第二次执行 因为不够间隔时间应该返回false')
    });

});