리팩터링을 제대로 하려면 불가피하게 저지르는 실수를 잡아주는 견고한 테스트 스위트(test suite)가 뒷받침돼야 한다.
모든 테스트를 완전히 자동화하고 그 결과까지 스스로 검사하게 만들자
테스트 주도 개발(Test-Driven Development, **TDD**) 기법을 창시
자주 테스트하라. 작성 중인 코드는 최소한 몇 분 간격으로 테스트하고, 적어도 하루에 한 번은 전체 테스트를 돌려보자.
아래 코드에서 픽스처에 대한 코드가 중복 사용되고 있음
describe("province", function() {
it("shortfall", function() {
const asia = new Province(sampleProvinceData());
expect(asia.shortfall).equal(5);
});
it("profit", function() {
const asia = new Province(sampleProvinceData());
expect(asia.profit).equal(230);
});
});
일반적으로 중복된 픽스처가 있다면 아래와 같이 바깥 범위로 끌어내 공통으로 사용할 수 있도록 수정하는 경우가 많다.(나도 이 방법을 주로 사용했었음..😅)
describe("province", function() {
const asia = new Province(sampleProvinceData());
it("shortfall", function() {
expect(asia.shortfall).equal(5);
});
it("profit", function() {
expect(asia.profit).equal(230);
});
});
테스트끼리 상호작용하게 하는 공유 픽스처를 생성하게 된다.올바른 중복 픽스처 사용 코드
describe("province", function() {
let asia;
beforeEach(function() {
asia = new Province(sampleProvinceData());
});
it("shortfall", function() {
expect(asia.shortfall).equal(5);
});
it("profit", function() {
expect(asia.profit).equal(230);
});
});