代码整洁之道——6测试

Posted 小小驰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码整洁之道——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);
  });
});

 

以上是关于代码整洁之道——6测试的主要内容,如果未能解决你的问题,请参考以下文章

一周总结《代码整洁之道》读后感

读C#代码整洁之道笔记05_使用工具改善代码和单元测试

代码整洁之道——2函数

代码整洁之道理论篇

读C#代码整洁之道笔记02_类对象和数据结构及编写整洁函数

C#代码整洁之道读后习题