Когда вы тестируете CRC32 :: FullCRC, у вас должна быть строка ввода, дающая известный CRC, чтобы вы могли проверить результат по известному значению.
Также вы должны проверить, используя входную длину, которая меньше или больше размера строки, чтобы проверить поведение метода, когда ввод неправильный.
Вы также можете попытаться дать нулевой указатель вместо строки, чтобы проверить, что метод не вызывает сбой в вашем приложении.
В VC ++ тест может выглядеть так:
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);
}