개발/Test

개발/Test

테스트 성능 개선

오늘은 프로젝트 테스트 성능을 개선한 이야기를 써보려고 합니다. 로컬에서 진행했으며, 컴퓨터 스펙은 M1 AIR(8코어) RAM 16GB SSD 512 입니다. 프로젝트 설명 간단하게 프로젝트 구조에 대해 설명하겠다. 멀티 모듈 프로젝트는 스프링 부트를 사용하고 있으며, 멀티 모듈로 구성돼 있다. api 모듈은 프레젠테이션 영역으로 인수 테스트와 컨트롤러 단위 테스트(Spring Rest Docs 생성)를 진행하고 있다. core 모듈은 비즈니스 로직을 수행하며 핵심 도메인 모델 클래스로 구성되어 있다. 통합 테스트와 단위 테스트를 진행하고 있다. 이 두 모듈의 테스트 성능을 개선해보려고 한다. 통합 테스트 운영 코드와 동일한 테스트 코드를 가지기 위해 명시적 롤백 전략을 사용하고 있다. 쉽게 말해 테스..

개발/Test

F.I.R.S.T

클린 코드 책에서 설명하는 깨끗한 테스트 코드를 작성하는 다섯 가지 규칙에 관한 게시글이다. 각 규칙에서 첫 글자를 가져와서 FIRST라고 부른다. F - 빠르게 (Fast) : 테스트는 빨라야 한다. 테스트가 빨리 수행되어 완료되어야 한다는 뜻이다. 테스트가 느리면 자주 돌릴 엄두가 안 생긴다. 자주 돌리지 않으면 초반에 문제를 찾아내 고치지 못한다. 코드를 마음껏 정리하지도 못하다. 결국 코드 품질이 망가지므로 테스트는 빨리빨리 돌아가야 한다. 즉 네트워크, 데이터베이스 등과 연동되는 코드들을 빠르게 수행하자는 뜻으로도 이해할 수 있다. (빨리 수행하려면 mocking이나 stub를 사용해야겠지..?) I - 독립적으로 (Independent) : 각 테스트는 서로 의존하면 안 된다. 한 테스트가 다..

Debin
'개발/Test' 카테고리의 글 목록