반응형

Junit과 Mockito의 차이

Junit은 Java 유닛테스트 프레임워크의 일종.

테스트를 작성하고, 실제로 테스트를 돌리는데 도와주는 프레임워크이다.

- 테스트클래스를 생성할 수 있다.

- @Test, @Before, @After 등을 붙여 테스트 생성주기를 정할 수 있다.

 

 

Mockito는 Mocking 프레임워크의 일종.

객체 간의 디펜던시(의존성)를 줄여, 테스트 코드를 효율적으로 짜도록 도와주는 프레임워크

 

의존성 줄이는 방법은,

 프로덕션 클래스의 "real" object의 생성을 생략하고, mocking object(가짜 객체)를 적용함으로써 테스트를 쉽게 한다.

 

(예를들어, Messenger 클래스에 Database 객체를 사용하고 있다면, Database객체를 Mocking하여 (왜냐하면, 이 객체는 외부와 통신하므로, 실제 테스트할 때 동작하기 어렵다.) 쿼리를 날린 척, DB에 저장한 척 을 하게 끔한다.

 Junit프레임워크를 사용하면서 Mockito를 사용할 수 있지만, Mockito말고 다른 Mocking Framework (e.g. PowerMock)을 사용할 수 있다.

 

 

 

정리

- 유닛테스트 도구로 Junit 프레임워크를 많이 사용함

- Mockito는 Mocking 프레임워크의 일종임.

- Junit은 Java 유닛테스트 프레임워크의 일종임.

- Junit 프레임워크는 Mockito (혹은 다른 Mock 프레임워크)없이도 사용 가능함.

- Mockito는 테스트 코드 짤 떄, 가짜객체 생성을 도와주어, 테스트 구현 시 복잡함을 줄여줌.

 

 

인용/참고하면 좋을 자료

https://stackoverflow.com/questions/38747779/mockito-what-is-it-and-how-is-it-different-from-junit

반응형