[TIL] Clean Code, 테스트
TDD
TDD는 테스트 코드를 먼저 작성하고 개발한다는 개발론중의 하나이다.
테스트 코드의 특징
- 한 번 작성된 테스트 코드는 영원히 유지보수 해야 한다.
- 내부 구현 사항을 테스트 하면 안 된다.
- 반복적인 코드, 재사용성을 높이기 (테스트 유틸리티)
- 배포용 코드와 철저히 분리
- 테스트코드를 통한 문서화의 효과
더 나은 테스트의 구조
- beforeEach, AfterEach 를 사용
- 준비 - 실행 - 검증 단계로 나누어져 있다
( Given - When - Then , GWT )
( Arrange - Act - Assert )
it('test code', async () => {
// Arrange, Given
const product = new Product();
// Act, When
const items = await product.items();
// Assert, Then
expect(items.length).toBe(1);
});
- Given : 준비 과정이 반복되는 경우, 재사용을 위하여 utility 함수로 정의해서 사용하는 것이 좋다.
- When : 의도적으로 실패하기
- 실패하는 코드를 먼저 작성 후, 버그 파악 후 성공하는 코드로 변환
- Then : 가장 마지막에 위치해야 한다.
더 나은 테스트의 원칙, FIRST 속성
- Fast : 빠른, 느린 것에 대한 의존성 낮추기
- 테스트하는 파일에서 파일을 읽거나, 데이터베이스에 접근하거나, 네트워크를 사용할 시에는 테스트 코드를 느리게 만들 수 있고 시스템도 불안정해진다.
- mock 함수, stub 활용하기.
- Isolated : 고립된, 독립
- 최소한의 유닛으로 검증
- Repeatable : 반복 가능한
- 테스트 코드를 실행할 때마다 동일한 결과를 유지
- 다른 테스트 코드에 의존하는 경우와 네트워크를 사용하는 경우 등 다른 환경에 영향을 받지 않도록 작성해야한다.
- Self-validating : 스스로 검증 가능한
- 자동화를 통한 검증단계 (CI/CD) 프로세스 도입
- Timely : 적시의
- 시기적절하게 테스트 코드를 작성해야 한다.
- 사용자에게 배포되기 이전에 작성
Author And Source
이 문제에 관하여([TIL] Clean Code, 테스트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@godud2604/TIL-Clean-Code-테스트저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)