最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • 小程序最佳实践之『单测』篇

    正文概述 掘金(孟陬)   2021-03-21   586

    单测篇

    单测可让开发者提前考虑边界情况,提升代码的鲁棒性(Robustness),同时让自己拥有重构的信心,以及给阅读者迅速理解代码的途径,而且从设计层面来讲可迫使开发者写出无副作用、满足 SRP 原则的『好函数』等好处。

    书写规范

    【建议】复杂单测应符合以下更具可读性的编码模式:

    it('should do sth when some conditions met', () => {
      const input = 'abc';
      const actual = testFunc(input);
      const expected = 'xyz';
    
      expect(actual).toEqual(expected);
    });
    
    Good
    it('正确分隔含金额的副标题', () => {
      const input = '奖励3000元还款额度';
      const actual = splitSubtitle(input);
      const expected = ['奖励', '3000','元还款额度'];
    
      expect(actual).toEqual(expected);
    });
    
    Bad

    当入参较长则不具备可读性

    it('normal src parameter restful url', () => {
      expect(foo('https://mdn.example.com/antmedia/afts/img/A*aafffffffffffff/600w_600h')).toBe('https://mdn.example.com/antmedia/afts/img/A*aafffffffffffff/600w_600h/432w_288h');
    });
    
    Good
    it('should add zoom into path for restful url', () => {
      const input = 'https://mdn.example.com/antmedia/afts/img/A*aafffffffffffff/600w_600h';
      const actual = foo(input);
      const expected = 'https://mdn.example.com/antmedia/afts/img/A*aafffffffffffff/600w_600h/432w_288h';
    
      expect(actual === expected);
    });
    

    覆盖率

    分为 branches statements line function 下一篇文章在展开细讲。

    覆盖率报告

    覆盖率是衡量代码质量最直观的一个指标,通过配置覆盖率阈值让线上运行的代码能始终恒稳。一般我们会要求新增的 util 覆盖率达到 99% 以上,增加配置文件,当阈值低于 99%,则测试不通过,以此限制代码质量在历经修改后不会恶化。

    jest

    有两种方式,通过命令行或配置

    // @filename package.json
    
    {
      "scripts": {
        "test": "jest --coverage" // or --collectCoverage
      }
    }
    

    或通过配置可以写到 package.json 或 jest.config.js

    // @filename package.json
    
    {
      "jest": {
        "collectCoverage": true,
      },
    }
    
    // @filename package.json
    
    {
        "jest": {
        "collectCoverage": true,
    +   "coverageThreshold": {
    +     "global": {
    +       "branches": 100,
    +       "functions": 100,
    +       "lines": 100,
    +       "statements": 100
    +     }
    +   }
      }
    }
    

    分支覆盖率

    刚开始写单测的开发者,易犯的错误是,洋洋洒洒列举一大堆 case,但是对分支覆盖率没有任何增益。

    如何有效提高覆盖率?我们必须先了解 branches statements line function 以及知道如何阅读覆盖率报告。先挖一个坑,等待下一篇文章《覆盖率》。


    起源地下载网 » 小程序最佳实践之『单测』篇

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元