Mock 에 대한 이야기(코드 없음) TDD(Mock객체)

프로그램을 테스트할 때 실제 객체를 사용하는 것 보다 mock 객체를 이용하는게 좋다고들 알고 있을것이다. 지금부터 하려는 것은 이 mock이라는 것에 대한 이미지를 생성하는데에 또는 mock을 좀더 친근감있게 접근하기 위한 예제를 하나 듣게되어 기록용으로 적어두려 한다.

미 대통령 전용 비행기의 이름이 에어포스라 한다. 뭐 정확히 뒤에 뭐 붙는거 같은데 중요하지 않으니 넘어가자. 대통령은 저런 전용비행기도 있고 좋겠다.. 여튼 대통령이 타는 저 비행기는 홍보도 하고, 이것도 하고 저것도 하고.. 여튼 여기저기 모습이 많이 공개가 된다. 그런데 대통령이 타고 있으니 저런 비행기가 나타나면 비행기 == 미 대통령 이라고 봐도 무방하지 않은가? 즉 안전문제가 있다. 그래서 테러리스트등을 속이기 위해 똑같은 모양의 모형비행기가 또 있다고 한다. 여기서 모형을 Mock-up이라고 쓴다. 진짜같은 가짜. 이것이 바로 mock이다.

실제 테스팅에 사용되는 mock객체와 머릿속으로 대충 비교해보면, 저런 의미와 비슷하지 않은가? 테러리스트들은 안에 대통령이 타고 있는지 모르지만, 에어포스만 보이면 로켓을 날리면 된다. A객체는 B객체가 진짜 그놈인지 잘 모르겠지만-_- 메서드를 부르면 된다. 물론 mock객체는 그 메서드에 반응하겠지. 다른점은 mock-up된 에어포스가 박살나면 테러리스트들은 대통령이 죽었다라는 뉴스(return값)대신 '니들 이제 뒤졌음 ㅋㅋ'등의 다른 뉴스를 듣게 될것이다.(여러가지 사정으로 대통령이 죽었다는 뉴스가 흘러나올수도 있지만, 그렇지 않다고 치자) 하지만, 객체의 경우에는 대통령 객체라 할지라도, 충분히 속을만한 정상적인 리턴값을 받게 될 것이다.

나도 이걸 보고 mock객체에 대한 부담감을 좀더 줄일 수 있었다.-_-) 이상 새로운 용어에 부담감/거부감을 느끼는 분들을 위한 예제였다.

 


덧글

댓글 입력 영역