Blog

[CS]45 테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.

Author
Summary
Category
Study
Tags
CS
PinOnMain
Favorite
Memory
Memory Date
2023/11/17
Cross Reference Study
Related Media
Related Thought
Related Lessons
tag
날짜
작성자
진행상황
진행 전
태그구분
4 more properties
테스트코드에 대해서 아는대로 설명해주시고 활용 경험에 대해서 답변해주세요.
테스트코드는 소프트웨어 개발에서 중요한 부분 중 하나로 코드의 기능을 확인하고 문제를 빠르게 발견하며 유지보수를 용이하게 만들어줍니다. 개발자가 새로운 기능을 추가하거나 기존 코드를 수정할 때 예상치 못한 버그를 찾아내기 쉽게해줍니다. 주로 단위 테스트, 통합 테스트, 시스템 테스트 등의 단계에서 작성됩니다.
예를 들면, 단위 테스트를 통해 특정 함수나 모듈이 예상대로 작동하는지 확인하고, 모의 객체(Mock)를 사용하여 의존성을 테스트하는 등을 해봤습니다.
통합테스트는 http요청부터 컨트롤러-서비스-리포지토리-데이터베이스까지 서로 다른 컴포넌트나 모듈 간의 상호 작용을 테스트하는 것이 목적입니다. API를 개발한 이후 통합 테스트를 통해 HTTP 요청부터 DB에 쿼리까지 API 전체가 정상 작동하는지 테스트해보았습니다.
스프링 부트는 테스트 코드 작성을 쉽게 만들어주는 다양한 기능과 지원을 제공해줍니다. @SpringBootTest 어노테이션을 사용하여 전체 애플리케이션 컨텍스트를 로드하고 테스트할 수 있습니다. 테스트에 필요한 빈들을 자동으로 구성해주고 주입해줍니다. 이는 테스트 환경을 구성하는데 필요한 부분을 크게 줄여줍니다. 이에 따라 생각보다 테스트는 모의객체를 원하는 형태로 구성하고, 결과에서는 어떤 부분을 검증 할 지 assert문 외에도 JUnit 5의 assertAll, assertThrows, assertTimeout 등의 메소드를 통해 다양한 Assertion을 통해 원하는 테스트가 가능했습니다.