Programming/Tips

[TDD] Mock 객체 알아보기

728x90
반응형

Mock이란?

실제 객체를 만들어 사용하기에 비용과 시간이 많이 들거나 의존성이 길게 걸쳐져 있어 제대로 구현하기 어려울 경우,

이를 대신하기 위해 만들어진 가짜 객체

 

Mock 분류

1. 테스트 더블

테스트를 진행하기 어려운 경우 이를 대신해 테스트를 진행할 수 있도록 만들어주는 객체

2. 더미 객체

단순히 인스턴스화될 수 있는 수준으로만 객체 구현

3. 테스트 스텁

더미 객체가 실제 동작하는 것처럼 보이게 만들어 놓은 객체

특정 값을 리턴해주거나 특정 메시지 출력 (특정 상태 가정)

상태 검증에 사용

4. 페이크 객체

여러 상태를 대표할 수 있도록 구현

실제 DB에 접속해 비교할 때와 동일한 모양이 보이도록 객체 내부에 구현

5. 테스트 스파이

테스트에 사용되는 객체

메소드 사용 여부 및 정상 호출 여부 기록, 요청시 알려줌

행위 기반 테스트(특정 메소드가 호출되었을 때 다른 메소드가 실행되어야 함)가 필요한 경우 사용

6. Mock 객체

행위 검증을 위해 사용되는 객체, 수동으로 만들거나 프레임워크를 통해 구현

행위 기반 테스트는 복잡도나 정확성 등 작성하기 어려운 부분이 많아 상태 기반 테스트가 가능하면 만들지 않기

행위 검증에 사용

 

 

 

참고

https://www.crocus.co.kr/1555

728x90
반응형