2011-11-21 4 views
3

기본적으로 Google 테스트에서 단위 테스트를 시작하려고하지만이를 수행하는 방법을 모르겠습니다. 시도하고 테스트 할 코드가 몇 가지 주어졌지만 어떻게해야하는지 잘 모릅니다. 이것은 테스트해야하는 코드 중 일부입니까? 어디에서 시작해야합니까? 모든 도움을 미리 감사드립니다.Google 테스트를 사용하여 일부 코드를 테스트하는 방법은 무엇입니까?

void CCRC32::FullCRC(const unsigned char *sData, unsigned long ulDataLength, unsigned long *ulOutCRC) 
{ 
    *(unsigned long *)ulOutCRC = 0xffffffff; //Initilaize the CRC. 
    this->PartialCRC(ulOutCRC, sData, ulDataLength); 
    *(unsigned long *)ulOutCRC ^= 0xffffffff; //Finalize the CRC. 
} 
+1

http://code.google.com/p/googletest/wiki/Primer를 읽었습니까? – PlasmaHH

+0

예, 실제로 가지고 있지만, 여전히 내 자신의 테스트를 만드는 방법을 이해하지 못합니다. – bigbaz34

답변

5

난 당신이 전에 여부를 this를 본 경우 잘 모르겠지만, 확실히 그것을 갈 줄 : VC에서

테스트는 다음과 같이 할 수 ++. 나는이 간단한 튜토리얼에서 다루는 기본적인 이해를 얻어야한다고 확신한다. 또한, 이미 stackoverflow에 대한 답변을 많이 제공하고 내 의견에 최고의 하나입니다 : Setup Googletest. 그럼에도 불구하고 kjella에서 제공하는 답변을 살펴보고 코드에 구현해보십시오. 잘하면, 그것은 당신이 기대하는대로 작동해야합니다.

참고 : 누구든지 마이크로 소프트 비주얼 스튜디오 닷넷 2003에 자동으로 구글 테스트 프레임 워크 라이브러리 기본적으로 런타임 라이브러리이 비슷한 구현을 수행하기 위해 노력하고있다 '단일 스레드 디버그'디버그 모드와 '단일 스레드'을 릴리스 모드로 사용해 보았습니다. 코드 생성에서 변경하기위한 옵션을 사용할 수 없습니다. 따라서 프로젝트에서 런타임 라이브러리로 Single-threaded 옵션을 선택하십시오. 그 외에도 간단하고 간단한 튜토리얼이 완벽하게 작동합니다!

행운을 빈다.

6

CRC32 :: FullCRC를 테스트 할 때는 알려진 CRC를 제공하는 입력 문자열이 있어야 알려진 값과 결과를 비교할 수 있습니다. 또한 입력이 올바르지 않은 경우 메서드의 동작을 확인하기 위해 문자열의 크기보다 작거나 같은 입력 길이를 사용하여 테스트해야합니다. 메서드가 응용 프로그램을 중단시키지 않는지 테스트하기 위해 문자열 대신 null 포인터를 제공 할 수도 있습니다.

TEST(CRC32, FullCRC) 
{ 
    //Assuming this is correct CRC (example) 
    unsigned long nCorrectCRC = 0xAA55BB77; 
    //A string to build crc for 
    CString sValue("What is the CRC32 for this string"); 
    //Pointer to string buffer 
    LPCSTR pBuf = sValue.GetBuffer(0); 
    //Length of string 
    unsigned long nLength = sValue.GetLength(); 
    //Calculated crc 
    unsigned long nCalculatedCRC = 0; 
    //Get the CRC 
    CRC32 MyCRC; 
    MyCRC .FullCRC(pBuf,nLength,nCalculatedCRC); 
    //Do the test, GooglTest returns "Passed" or "Failed" 
    ASSERT_TRUE(nCalculatedCRC == nCorrectCRC); 
} 
+0

'nCRC'는 어디에서 왔습니까? – Neophile

+0

죄송합니다, 지금 고정 – kjella