如何使用谷歌测试测试一些代码

How to test some code using Google test?

本文关键字:测试 代码 谷歌 何使用      更新时间:2023-10-16

基本上我试图开始一些单元测试在谷歌测试,但不知道如何去做。我已经给了一些代码来尝试和测试,但我不知道如何去做这件事。这是我需要测试的一些代码吗?我应该从哪里开始呢?谢谢你的帮助。

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.
}

当您测试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);
}

我不确定你以前是否见过这个,但一定要试一试。我很确定你应该在这个简单的教程中得到基本的理解。此外,stackoverflow上已经提供了很多答案,我认为最好的答案是:设置Googletest。无论如何,一定要仔细阅读kjella提供的答案,并尝试在代码中实现它。希望它能像你期望的那样工作。

注意:无论谁试图在Microsoft Visual Studio . net 2003中执行类似的实现,Google测试框架库自动将运行时库默认为'单线程调试'用于调试模式,'单线程调试'用于发布模式,就我所尝试的而言,从代码生成更改它的选项不可用。因此,请确保在项目中选择单线程选项作为运行时库。除此之外,这个简单而简短的教程工作完美!

祝你好运!