refactoring 4: Test

테스트 구축하기
refactoring

리팩터링을 제대로 하려면 불가피하게 저지르는 실수를 잡아주는 견고한 테스트 스위트(test suite)가 뒷받침 되어야한다.
리팩터링을 위해 하지않더라도 좋은 테스트를 작성하는 일은 개발 효율을 높여준다.

4.1 자가 테스트코드의 가치

디버깅의 시간을 줄이면 생산성이 급 상승한다.

어차피 모든 버그를 잡아낼 수 없다고 생각하여 테스트를 작성하지 않는다면 대다수의 버그를 잡을 수 있는 기회를 날리는 셈이다. >

TDD: Test-Driven Development - 테스트 주도 개발

테스트가 갖춰지지않은 코드를 리팩터링 해야할 때,

곧바로 리팩토링을 하지않고 자가 테스트 코드부터 작성하라.

4.2~4.6 테스트 코드 생성부터 수정까지

테스트 기본 구조

describe("지역전체 클래스 검사", () => {
  it("부족분", () => {
    const asia = new Province(sampleProvinceData()); // step 1
    assert.equal(asia.shortfall, 5); // step 2
  });
});

테스트 코드 작성 팁

테스트 코드는 어느 수준까지 작성해야 할까?


4.7 끝나지 않은 여정

모든 버그를 걸러주지는 못할지라도, 안심하고 리팩터링할 수 있는 보호막은 되어준다.

리팩터링하는 동안에도 계속 테스트를 추가하자.

테스트 용이성을 아키텍처 평가 기준으로 활용하는 사례도 많다.

다양한 유형의 테스트


테스트의 품질 향상 및 평가 기준