테스트(Testing)

soonniee·2021년 5월 10일
0

클린코딩

목록 보기
7/10
post-thumbnail

TDD(테스트 주도 개발) : 선 테스트 코드 작성 후 구현한다.

TDD의 절차 : 실패 -> 성공 -> 리팩토링.

실패

실패하는 테스트 케이스 먼저 만듬.

성공

실패하는 테스트 케이스 성공시키는 코드 작성.

리팩토링

중복 제거 및 개선.

//Bad

const assert = require('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

const assert = require('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);
  });
});

함수마다 하나의 assert 문 사용하기.

참고

[Clean Code] 단위 테스트 (JS)
[Clean Code] TDD 소개
[번역판] CLEAN CODE JAVASCRIPT

0개의 댓글

관련 채용 정보