테스트코드(Test Code)
-
Mock 객체란?테스트코드(Test Code) 2022. 3. 15. 18:56
Mock 객체란? Mock은 사전적 의미로 모조품이라는 뜻을 가집니다. 즉, 제품의 외양을 흉내 낸 모조품을 말하며 소프트웨어에서는 모듈의 겉모양이 실제 모듈과 비슷하게 보이도록 만든 가짜 객체를 Mock 객체라고 합니다. 왜 사용할까요? 테스트 카이스 작성이 어려운 상황과 Mock 객체가 필요한 상황은 종종 일치하곤 합니다. 대부분의 경우 모듈이 가진 '의존성'이 근본적인 원인이 됩니다. 따라서 그 '의존성'을 단절시키기 위해 사용합니다. 예를 들어 다음과 같은 상황에 사용합니다. 1. 테스트 작성을 위한 환경 구축이 어려울 때 다른 부서와 연계 모듈이어서 다른 쪽에서 승인을 해줘야 테스트가 가능한 경우 방화벽으로 막혀 있어서 통과가 어려운 경우 다른 부서에게 모듈을 아직 넘겨받디 못한 경우 오라클 데..
-
테스트 커버리지? 코드 커버리지란?테스트코드(Test Code) 2022. 3. 7. 11:56
Test Coverage / Code Coverage란? 많은 서비스 기업에서는 테스트 코드의 중요성을 인지하고 코드 커버리지를 최대한 유지 및 지속, 상승시키면서 개발을 하려고 노력합니다. 테스트 커버리지/코드 커버리지란 시스템 또는 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타낸 것입니다. 테스트를 진행하였을 때 '코드 자체가 얼마나 실행되었느냐'는 것으로 수치를 통해 확인할 수 있습니다. 코드 커버리지는 어떤 기준으로 측정할까? 소스 코드 기반으로 수행되는 화이트 박스 테스트를 통해 측정됩니다. 화이트 박스 테스트란? - 응용 프로그램의 내부 구조와 동작을 검사하는 테스트 방식 - 개발자 간점의 단위 테스트 방법 블랙박스 테스트란? - 소프트웨어의 내부 구조나 동작 원리를 모르는 상..
-
테스트 코드 걸음마 떼기 - 은행 계좌 클래스 만들기테스트코드(Test Code) 2022. 3. 3. 02:50
다음 기능을 하는 은행계좌 클래스를 만드려 합니다. 클래스 이름은 Account! 기능 - 계좌 잔고 조회 - 입금/ 출금 - 예상 복리 이자 TDD는 항상 테스트를 먼저 작성합니다. TDD에서 테스트의 최소 작성 단위를 최하위 모듈의 단위와 일치시킵니다. Java 언어 기준으로 최하위 모듈이란 '메서드'입니다. 계좌 클래스의 이름은 Account라고 하겠습니다. 1. AccountTest.java 파일을 생성합니다. 계좌 잔고 조회에 대해 한번에 테스트를 작성하고 싶지만 한번 참아보겠습니다. 우선 계좌를 생성하고 그 계좌가 정상적으로 생성되었는지 확인해보겠습니다. 2. 계좌가 생성되었는지 확인하는 테스트 코드를 작성합니다. package test; public class AccountTest { pub..
-
테스트 코드 - 회원 관리 예제 실습(회원 서비스 개발)테스트코드(Test Code) 2022. 2. 14. 00:01
이전에 회원 관리 예제를 작성하는 실습(회원 서비스 개발)을 진행하였습니다. 이를 통해 테스트 코드를 작성해보고자 합니다. https://junuuu.tistory.com/93 1. src/test/java 에 hello.hellospring.service 패키지를 생성합니다. 2. hello.hellospriong.service패키지에 MemberServiceTest 클래스를 생성합니다. 일반적으로 테스트하고자 하는 클래스 이름 뒤에 Test를 붙여 이름 짓습니다. 3. MemberServiceTest 클래스에 테스트 코드를 작성합니다. package hello.hellospring.service; import static org.junit.jupiter.api.Assertions.assertThrow..
-
테스트 코드 - 회원 관리 예제 실습(회원 도메인과 리포지토리 생성)테스트코드(Test Code) 2022. 2. 5. 00:01
이전에 회원 관리 예제를 작성하는 실습(회원 도메인과 리포지토리 생성)을 진행해 보았습니다. 개발한 기능을 main 메서드를 통해서 실행하거나, 웹 애플리케이션의 컨트롤러를 통해서 해당 기능을 실행하게 되면 준비하고 실행하는데 시간이 오래 걸립니다. 또한 반복적으로 테스트하거나 여러 테스트를 한꺼번에 하기 어렵다는 문제점이 있습니다. 이를 통해 테스트 코드를 작성해보고자 합니다. https://junuuu.tistory.com/75 스프링 부트 - 회원 관리 예제 실습 비즈니스 요구사항 정리 데이터 : 회원 ID, 이름 기능 : 회원 등록, 조회 아직 데이터 저장소가 선정되지 않은 가상의 시나리오(어떤 데이터베이스를 사용할지 정해지지 않음) 일반적인 웹 애플리 junuuu.tistory.com 1. 자바..
-
테스트코드(Test Code)란?테스트코드(Test Code) 2022. 1. 10. 00:01
테스트 코드(Test Code)란? Test는 시험, 검사이라는 의미로 실제 코드를 검사하기 위한 코드입니다. 작성한 프로그램이 문제가 없는지 확인하기 위해서 사용합니다. 많은 개발자분들이 테스트 코드의 중요성을 강조하고 있는데 테스트 코드를 왜 사용할까요? 개발자는 기능을 구현하는 게 중요하지만 이 기능이 잘 동작하는지 검증하기 위해서는 테스트가 필수적입니다. 기존에 테스트를 하는 방식은 다양한 use case에 맞추어 단순노동을 하면서 입력을 하며 콘솔로 찍히는 로그가 정상인지 아닌지 확인하며 진행했습니다. 이러한 방법들은 단점들이 존재합니다. 기능을 재 테스트하거나 요구 상황이 변경되면 use case를 다시 작성하고 테스트를 반복해야 합니다. 프로그램의 규모가 클 때 어디서 에러가 발생했는지 확인..