뭐라도 끄적이는 BLOG

Mockito 소개 본문

Java/Mockito

Mockito 소개

Drawhale 2021. 12. 6. 17:00

Mockito는 Mock을 지원하는 툴입니다. 여기서 Mock은 진짜 객체와 비슷하게 동작하지만 프로그래머가 직접 그 객체의 행동을 관리하는 객체입니다. Mock 객체를 쉽게 만들고 관리하고 검증할 수 있는 방법을 제공하는 것이 Mockito입니다.

대체제로 EasyMock, JMock등이 있습니다.

 

JUnit만으로는 Database를 사용한다던지 외부의 API를 사용한다고 했을때 외부 API가 어떻게 동작해야하는지 항상 테스트해보면서 사용할 수 없습니다. 그렇기 때문에 어떻게 동작해야하는 예측을 해서 Mock을 만든뒤 사용하게 됩니다. 그리고 어느정도 규약이 정해졌으나 그 서비스가 아직 구현이 안됬음에도 해당 서비스를 이용하는 다른 서비스를 구현해야 할 때 Mock을 사용할 수 있습니다.

Unit test

Unit test는 소스코드의 특정 모듈이 의도된 대로 정확히 작동하는지 검증하는 절차입니다. 즉, 모든 함수와 메소드에 대한 테스트 케이스를 작성하는 철차를 말합니다. 이를 통해서 언제라도 코드 변경으로 인해 문제가 발생한 경우, 단시간 내에 이를 파악하고 바로 잡을 수 있도록 해줍니다. 이상적으로 각 테스트 케이스는 서로 분리되어야 합니다.

 

단위 테스트에 대해서 객체나 클래스 하나의 단위로 엄격하게 단위를 정의할 수도 있습니다. 이러한 개발자는 Mock으로 모든 의존성을 Mocking을 해야지만 단위테스트라고 생각을 할 수 있습니다. 하지만 반드시 그래야만 Unit Test라고 생각되는 것은 아닙니다. 단위를 생각할 때 하나의 행동의 단위로 테스트를 진행할 수도 있습니다. 이 단위는 각자의 팀이나 프로젝트에 따라 정하고 하는것이지 어느것이 명확한 답이라고 정의 내리기는 힘듭니다.

이미 구현이 된 내부 서비스는 Mocking을 안하고 외부에서 들여오는 서비스는 Mocking을 하는 그런 경우. 외부서비스가 Test환경을 제공한다면 Mocking을 굳이 안해도 되지 않을까 생각합니다. 예를들어 Bango와 같은 것은 테스트환경이 구축되어 있기 때문에 그냥 사용하면 되지만 이러한 환경이 없으면 Mocking을 할 수밖에 없습니다.

 

Mockito 추가

Spring boot에선 Mockito를 기본으로 제공을 해줍니다. 없다면 Maven Repository에서 mockito-junit-jupiter와 mockito-core를 가지고 와서 사용해야 합니다.

mockito-core는 Mockito가 제공해주는 기본적인 기능이 들어있습니다. mokito-junit-jupiter는 JUnit Test에서 Mockito를 연동해서 사용할 수 있는 추가적인 JUnit Extension입니다.

Mock을 활용한 테스트는 다음 세가지만 알면 쉽게 작성할 수 있습니다.

  • Mock을 만드는 방법
  • Mock이 어떻게 동작해야 하는지 관리하는 방법
  • Mock의 행동을 검증하는 방법

참고자료

단위 테스트에 대한 고찰

 

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

 

더 자바, 애플리케이션을 테스트하는 다양한 방법 - 인프런 | 강의

자바 프로그래밍 언어를 사용하고 있거나 공부하고 있는 학생 또는 개발자라면 반드시 알아야 하는 애플리케이션을 테스트하는 다양한 방법을 학습합니다., 그냥 개발자를 넘어 '더 나은 개발

www.inflearn.com

 

유닛 테스트 - 위키백과, 우리 모두의 백과사전

 

ko.wikipedia.org

 

 

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

 

반응형

'Java > Mockito' 카테고리의 다른 글

Mockito 사용법  (0) 2021.12.06