일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- git #gitlab #github
- layout #thymeleaf #화면분할
- 오토와이어드
- spring
- autowired
- DispatcherServlet
- Component
- Bean
- 스프링
- 스프링 부트
- 1
- zepettoworld.com
- Today
- Total
기록과 정리
Mockito 소개&준비 본문
이 글은 백기선님의 '더 자바, 애플리케이션을 테스트하는 다양한 방법' 강의를 참고하였습니다.
https://www.inflearn.com/course/the-java-application-test
더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의
자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발
www.inflearn.com
소개
Mockito는 Mock을 지원하는 프레임워크. Mock 이란 진짜 객체와 비슷하게 동작하지만 프로그래머가 직접 컨트롤할 수 있는 가상의 객체이다. 행동을 관리하고 동작을 검증하여 테스트를 보다 쉽게 진행할 수 있다.
( Mockito 외에도 EasyMock, JMock 등 Mock을 관리하는 프레임워크가 존재하지만 Mockito를 가장 많이 사용한다. )
Mock을 사용하면 자사에 존재하는 API 호출이나 DB를 사용할 때, 어떻게 동작하는지 예측을 해서 보다 빠르고 정확하게 동작하는 것을 직접 볼 수 있다.
Mockito framework site
Intro Why How More Who Links Training Why drink it? Mockito is a mocking framework that tastes really good. It lets you write beautiful tests with a clean & simple API. Mockito doesn’t give you hangover because the tests are very readable and they produc
site.mockito.org
특히 Unit Test에는 여러 관점이 있는데, 아래 글에 의하면 Mock 객체를 사용하면 모든 의존성을 끊고 단위테스트를 할 수도 있지만 단위라는 개념을 행동의 단위로 끊어서 생각해도 상관이 없다고 한다. ( 프로젝트에서 충분히 논의에 의해 결정을 해도 상관없는 문제일 것 같다고 강의에서 말하고 있다. )
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
또한 어떤 경우에 Mocking을 하느냐도 관점 차이인듯한데, 이미 만들어진 서비스가 아닌 외부 서비스나 API의 경우 더 나은 테스트 환경을 제공해 줄 수 있을듯 하다.
시작하기
Mockito는 SpringBoot를 사용한다면 spring-boot-starter-test 에 포함되어 쉽게 사용가능하다.
스프링 부트를 쓰지않는다면 , mockito-core와 mockito-junit-jupiter를 각각 의존성 추가를 해주어야 한다.
'IT > Test (JUnit)' 카테고리의 다른 글
Mockito BDD 스타일 API (0) | 2021.11.08 |
---|---|
Mock 객체 Stubbing (0) | 2021.10.25 |
Mock 객체 사용하기 (0) | 2021.10.24 |
JUnit 5 Assertion (0) | 2021.09.14 |
JUnit5 소개 & 시작하기 (0) | 2021.09.13 |