• 代码整洁之道——6、测试


    测试比发布更重要。如果你没有测试或者测试的不充分。那么你每次发布的时候都不能保证不出问题。你的团队决定测试的数量,但是拥有100%的测试覆盖度(所有的语句和分支)可以让你达到高度的自信和内心的平静。这意味着,除了有好的测试框架,你还需要使用好的覆盖率工具。

    没有借口不写测试,有大量的JS测试框架,所以选择一个你们团队喜欢的。当你选择了一个测试框架后,接下来你们的目标是为每一个新的特性、模块写测试。如果你倾向于测试驱动开发,那就太好了,但是主要目标是确保发布或者重构一个新功能前,达到了测试覆盖率的目标。

    一个测试一个概念(类似单一职责原则)

    Bad:
    import assert from 'assert';
    
    describe('MakeMomentJSGreatAgain', () => {
      it('handles date boundaries', () => {
        let date;
    
        date = new MakeMomentJSGreatAgain('1/1/2015');
        date.addDays(30);
        assert.equal('1/31/2015', date);
    
        date = new MakeMomentJSGreatAgain('2/1/2016');
        date.addDays(28);
        assert.equal('02/29/2016', date);
    
        date = new MakeMomentJSGreatAgain('2/1/2015');
        date.addDays(28);
        assert.equal('03/01/2015', date);
      });
    });
    
    Good:
    import assert from 'assert';
    
    describe('MakeMomentJSGreatAgain', () => {
      it('handles 30-day months', () => {
        const date = new MakeMomentJSGreatAgain('1/1/2015');
        date.addDays(30);
        assert.equal('1/31/2015', date);
      });
    
      it('handles leap year', () => {
        const date = new MakeMomentJSGreatAgain('2/1/2016');
        date.addDays(28);
        assert.equal('02/29/2016', date);
      });
    
      it('handles non-leap year', () => {
        const date = new MakeMomentJSGreatAgain('2/1/2015');
        date.addDays(28);
        assert.equal('03/01/2015', date);
      });
    });
  • 相关阅读:
    mysql binlog参数设置
    poj 2774 最长公共子--弦hash或后缀数组或后缀自己主动机
    Base64编码和解码算法
    怎样给你的Android 安装文件(APK)减肥
    JAXB 注解
    编程获取linux的CPU使用的内存使用情况
    那么温暖http合约,入门。
    什么是关账?
    经营活动现金净流量与总股本之比和经营活动现金净流量与净资产之比
    P2P风险淮安样本:5000万连锁漩涡牵出银行内案
  • 原文地址:https://www.cnblogs.com/xxchi/p/7242115.html
Copyright © 2020-2023  润新知