zoukankan      html  css  js  c++  java
  • 代码整洁之道——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);
      });
    });
  • 相关阅读:
    数据挖掘常用算法
    helloworld
    sqlserver 变量级基本语法
    存储过程
    动态代理jdk 和cglib
    创建表添加约束
    sqlserver 子查询
    创建数据库
    javaScript实现同意等待——心得
    JavaScript关于不要复制黏贴代码的心得
  • 原文地址:https://www.cnblogs.com/xxchi/p/7242115.html
Copyright © 2011-2022 走看看