단위 테스트 및 Mockito에 대해서 간단하게 알아보도록 하겠습니다.
이 글은 백기선님 더 자바, 애플리케이션을 테스트하는 다양한 방법을 정리한 글입니다.
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
단위테스트(UnitTest)
소프트웨어의 작은 부분 단위를 격리된 환경에서 테스트하는 것을 단위테스트라고 합니다.
그럼 단위를 어느 수준으로 설정하는 것이 좋을까요?
보통은 단위를 메소드나 클래스 수준으로 보지만 마틴 파울러의 말을 빌려보자면
"메서드나 클래스처럼 독립적인 단위 수준으로 하는 것이 아닌,
상호 작용 단위테스트가 객체 지향 소프트웨어 개발에서 클래스 간의 협력과 상호 작용을 테스트를 더 유용하게 테스트할 수 있다"
라고 이야기 하고 있습니다. (여기서 상호작용은 클래스와 또은 모듈간에 상호작용입니다.)
출처 : https://martinfowler.com/bliki/UnitTest.html
bliki: UnitTest
Unit Tests are focused on small parts of a code-base, defined in regular programming tools, and fast. There is disagreement on whether units should be solitary or sociable.
martinfowler.com
저는 OOP를 실천하는데 있어 상호 작용 테스트가 더 유용하다고 생각합니다.
클래스 하나로만 이루어져 있는 객체가 많이 없을 것이고 상호 작용에 관한 테스트를 하지 않으면 OOP에 대한 테스트를 제대로 하지 못할 것이라고 생각합니다.
(자세한 단위 테스트 내용은 따로 올리도록 하겠습니다.)
Mokito
Mokito는 소프트웨어 개발 및 테스트 중에 모의 객체(Mock 객체)를 만들고 사용하는데 도움을 주는 프레임워크입니다.
Mockito는 단위 테스터나 TDD에서 꼭 필요한 프레임워크라고 볼 수 있습니다.
2022년 통계에 보면 Junit5을 제외하고 테스트 프레임워크 부분에서 1위를 차지하는 걸 볼 수 있고
Junit5를 사용하는 사람의 절반 이상은 Mockito를 사용한다고 볼 수 있습니다.
출처 https://www.jetbrains.com/lp/devecosystem-2022/java/
The State of Developer Ecosystem in 2022 Infographic
The State of Developer Ecosystem 2022 is a detailed report about the programming community, which covers the latest trends in languages, tools, technologies, and lifestyles of developers.
www.jetbrains.com
그만큼 Mockito가 Spring에서 테스트 할 때 매우 유용하게 사용되는 테스트 프레임워크인 것을 볼 수 있습니다.
Mockito 설치
Spring Boot를 사용하고 계신다면 이미 라이브러리에 Mockito가 존재하고 있습니다.
Spring Boot 3.1.3 기준으로 mockito-core-5.3.1.jar가 설치 되어있습니다.
Spring을 사용하고 계신다면
gradle
implementation group: 'org.mockito', name: 'mockito-core', version: '5.5.0'
Maven
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>5.5.0</version>
</dependency>
라이브러리를 추가해서 사용 가능합니다.
오늘은 간단하게 단위테스트 및 Mockito에 대해서 알아보았습니다.
TDD 할 때 Mock을 빼놓고는 테스트하기 어렵기에 매우 중요한 테스트 프레임워크가 아닐까 생각됩니다.
단위테스트 및 Mockito 소개를 마치도록 하겠습니다. 감사합니다.
https://github.com/kibongcoders/junit5
GitHub - kibongcoders/junit5
Contribute to kibongcoders/junit5 development by creating an account on GitHub.
github.com
출처 :
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
'Java > 더 자바, 애플리케이션을 테스트하는 다양한 방법' 카테고리의 다른 글
Mockito 객체 (0) | 2023.09.14 |
---|---|
Junit5 @ExtendWith, @RegisterExtension 확장 모듈 (0) | 2023.09.12 |
Junit5 테스트 인스턴스, 테스트 순서 (0) | 2023.09.12 |
Junit5 테스트 반복하기 (0) | 2023.09.12 |
Junit5 태깅, 필터링 Tagging, Filtering (0) | 2023.09.11 |