2023.06.07
1. 팩토리 메서드
생성패턴의 한 종류이다. 특징은 다음과 같다
- 1. 확장시 코드 수정 없이 객체(프로덕트)를 추가할 수 있음
- 객체 생성시 서브클래스가 어느 클래스의 인스턴스를 만들지 결정
- 인스턴스 생성을 서브클래스에 위임
전에 진행한 디자인패턴 스터디를 나중에 이 블로그에 정리할 예정이므로, 좋은 예제코드가 있는 블로그 하나만 첨부하겠음
https://bcp0109.tistory.com/367
2. 자바스크립트로 쓰는 테스트코드
2-1. 초기 코드
class Dollar {
#amount;
equals(object) {
const dollar = new Dollar(object);
return amount == dollar.amount;
}
}
class Franc {
#amount;
equals(object) {
const franc= new Franc(object);
return amount == franc.amount;
}
}
2-2. 테스트코드
describe('Equality Test', () => {
it('같은 값이면 true, 다른 값이면 false를 반환해야 한다.', () => {
expect(new Dollar(5).equals(new Dollar(5)).toBe(true);
expect(new Dollar(5).equals(new Dollar(6)).toBe(false);
expect(new Franc(5).equals(new Franc(5)).toBe(true);
expect(new Franc(5).equals(new Franc(6)).toBe(false);
});
});
2-3. 리팩토링
class Money {
amount; // protected가 없어서 public으로 전환. private이면 하위 클래스 접근 불가능
equals(object) {
const money = new Money(object);
return amount == money.amount;
}
}
class Dollar extends Money {
}
class Franc extends Money {
}
3. 필요한 것 같은 테스트?
이 책을 읽다가 "필요할 것 같은 테스트코드 작성" 이라는 내용이 나왔다. 읽을 당시에는 그런 테스트코드는 뭘까?라고 생각했는데, 지금 생각해보니 너무 당연하게도 딱 떨어지게 정의할 수는 없다. 개발자마다, 프로젝트마다 상황이 모두 다르기 때문이다. 그러나 이렇게 지나치기에는 아쉬워 어떤 것들을 테스트코드 작성하는지 정리해보고 마무리하겠다.
- 기능 테스트: 소프트웨어의 각 기능이 예상대로 작동하는지 확인. 예를 들어, 사용자가 로그인 버튼을 클릭하면 로그인 페이지로 이동하는지 확인하는 테스트가 있을 수 있습니다.
- 경계 값 테스트: 소프트웨어가 특정 범위의 값에 대해 제대로 작동하는지 확인합니다. 예를 들어, 숫자를 입력 받는 필드가 0에서 100 사이의 값만 허용하는 경우, 0과 100, 그리고 그 경계를 넘어서는 값(-1, 101 등)에 대한 테스트를 해야 합니다.
- 예외 처리 테스트: 예상치 못한 입력이나 상황에 대해 소프트웨어가 적절히 대응하는지 확인합니다. 예를 들어, 사용자가 잘못된 형식의 이메일 주소를 입력했을 때 적절한 오류 메시지를 보여주는지 확인하는 테스트가 있을 수 있습니다.
- 성능 테스트: 소프트웨어가 큰 데이터 세트나 많은 사용자 요청을 처리할 수 있는지 확인합니다.
- 회귀 테스트: 코드 변경 후에도 기존 기능이 계속 잘 작동하는지 확인합니다.
'etc > TDD' 카테고리의 다른 글
켄트백의 TDD 3회차 스터디 18장-24장(~200p) (0) | 2023.06.27 |
---|---|
켄트백의 TDD 3회차 스터디 11장-17장(~157p) (0) | 2023.06.18 |
켄트벡의 TDD 1회차 스터디(~75p) (0) | 2023.05.29 |