CPPUNIT 이후 C++ 테스트 프레임웍 중 최고로 평가 되는 구글테스트, 구글목테스트 사용기 이다.
머 사실 선택의 폭이 그리 넓지 않다는 ...
구글 테스트는 C 타입의 함수타입 이고, 구글목 테스트는 C++ 객체 타입이라고 이해하면 이해가 빠르것 같다.
구글목은 테스트 프레임웍이 아니라 구글테스트의 확장이므로 구글테스트도 같이 필요하다.
구글목 테스트를 설치 하면 구글 테스트도 같이 설치된다.
1, 먼저 구글목 테스트 프레임웍을 다운받는다. http://code.google.com/p/googlemock/
2, 다음 Visual C++ 로 구글목 테스트를 빌드 한다. "gmock\msvc\2005\gmock"
3, 빌드를 하면 오류가 발생할 것이다. 구글목은 tr1 의 tuple 를 사용하기 때문에 boost 를 설치해 준다. http://extern.tistory.com/37
4, 설치한 boost 의 경로를 include 폴더에 추가한다. "boost_version", "boost_version\boost\tr1\tr1"
5, 신규 프로젝트를 만들어서 구글목 헤더를 폴더에 추가한다. "mock\gtest\include", "gmock\include"
나머지는 소스로~
#include#if defined (_DEBUG) #pragma comment (lib, "2005/Debug/gmock.lib") #else #pragma comment (lib, "2005/Release/gmock.lib") #endif /*start: 메소드 테스트*/ int ReturnMethod() { return 1; } //MethodTest, True_Method 는 결과창에서 구분을 위한 설명 TEST(MethodTest, True_Method) { EXPECT_EQ(ReturnMethod(),1); } TEST(MethodTest, False_Method) { EXPECT_EQ(ReturnMethod(),2); } /*end: 메소드 테스트*/ /*start: class 테스트*/ // ::testing::Test 상속 받아야 한다. class Test_Class : public ::testing::Test { public: // TEST_F 통해 class를 테스트 할때 실행되는 함수 virtual void SetUp() { test_ptr = new int; } // TEST_F 통해 class를 테스트 할때 마지막에 실행되는 함수 virtual void TearDown() { delete test_ptr; test_ptr = NULL; } //SetUp(), TearDown() 는 기본 생성자 소멸자로 대체 가능하지만 그렇게 사용하지 말자 protected: int* test_ptr; }; TEST_F(Test_Class, True_Class) { ASSERT_TRUE(test_ptr != NULL); } TEST_F(Test_Class, False_Class) { ASSERT_FALSE(test_ptr != NULL); } /*end: class 테스트*/ int _tmain(int argc, _TCHAR* argv[]) { testing::InitGoogleMock(&argc, argv); return RUN_ALL_TESTS(); }
'Library' 카테고리의 다른 글
Server Application 에서 DataBase 를 Embedded 시키기 (1) | 2012.09.28 |
---|---|
오라클 ODBC 설정 하기 (3) | 2012.09.13 |
TR1 유용한 클래스/함수 (4-2) ... function 템플릿 (0) | 2010.11.23 |
TR1 유용한 클래스/함수 (4-2) ... reference_wrapper 템플릿 (0) | 2010.11.09 |
TR1 유용한 클래스/함수 (4-1) ... mem_fn 템플릿 (0) | 2010.11.08 |