본문 바로가기
JAVA/SpringTest

TDD에 대해서 다시 정리 해본다. - Mockito

by 플람 2020. 3. 16.

많은 TDD 프레임워크 중에 현재도 Mockito를 많이 쓴다. 

 

Mockito도 많이 쓰지만. private와 protected를 테스트할 때는 powerMock을 애용하기도 한다고한다.

 

둘의 내용을 다 다루면 좋겠지만, 일단 저는 대중적인 TDD 프레임워크인 Mockito에 대해서 쓰도록 하겠습니다.

 


Mockito 프레임워크의 차별점은 무엇인가?

1. 테스트 그 자체에 집중한다. 테스트의 행위와 반응(interaction)에만 집중해서 테스트 메소드를 작성할 수 있게 한다.

2. 테스트 스텁을 만드는 것과 검증을 분리시켰다.

3. Mock 만드는 방법을 단일화했다.

4. 테스트 스텁을 만들기 쉽다.

5. API가 간단하다.

6. 프레임워크가 지원해주지 않으면 안 되는 코드를 최대한 배제했다. record( ), replay( ) 메소드도 없고 에일리언 코드 같은 control/context 객체도 없다.

7. 실패 시에 발생하는 에러추적(stack trace)이 깔끔하다. 특정 API나 라이브러리를 모르면 이해할 수 없는 부분을 제외했다.


일단 책에 써져있는 mockito 프레임워크의 차별점

 

Mockito의 기본 사용법은 CreateMock, Stub, Exercise, Verify가 있다.

 

CreateMock : 인터페이스에서 해당하는 Mock객체를 만든다.

Stub : 테스트에 필요한 Mock객체의 동작을 지정한다.

Exsercise : 테스트 메소드 내에서 Mock객체를 사용한다.

Verify : 메소드가 예상대로 호출됐는지 검증한다.

 

BDD(행위 주도 개발)를 지원하는 Mockito

 

Mockito는 Given , When, Then으로 시나리오를 만들어준다.

 

이상입니다.

 

더 깊은 내용을 알고 싶으면.

 

https://repo.yona.io/doortts/blog/issue/5

 

현재 글의 출처인 이곳의 pdf파일을 보세요! ㅎㅎ