2월, 2015의 게시물 표시

Google Mock

Why Mock? Mock Object는 real object를 모방하여 대신하기 위해 만들어진 객체로서 real object와 같은 interface를 가지고 각각의 interface 호출시 유저가 정의한 값을 반환하도록 만들어진다. 이러한 Mock Object는 다음의 이유로 사용된다. Object가 비결정적 결과를 return할 때 (현재 시간, 온도 등) Object가 재현 또는 구현하기 힘든 상태를 가질 때 (network error) Object의 동작이 느릴 때 (Test 전에 초기화 되어야 하는 DB) Object를 아직 구현하지 않았거나 동작이 바뀌었을 때 Test를 위한 method나 information을 포함해야 할 때 여기서 Unit Test 시에는 마지막 두가지 이유로 Mock을 사용한다. 아직 구현되지 않은 Object를 대신하여 Test를 진행할 수 없을 때 fake object의 목적으로 구현 Test하고자 하는 과정에서 대상 객체의 Interface가 다음과 같이 정상적으로 호출되었는지를 검사 호출시 parameter 검사 호출 횟수 검사 Google Mock 자체는 Test Framework가 아니라 앞서 말한 Mock Object를 쉽게 만들어주기 위한 도구이다. 결국 Test를 위해서는 Test Framework와 같이 사용되야 한다. Google Test bundel과 함께 제공되므로 Google Test를 사용해도 좋고 CppUnit등과 같은 다른 Test Framework 와 같이 사용할 수 도 있다. System Requirement gcc 4.0+ or Microsoft Visual C++ 8.0 SP1 Users reported that it also works with gcc 3.4, Microsoft Visual C++ 7.1, and Cygwin, although we haven't tested it there ourselves. E