如何使用谷歌测试测试一些代码
How to test some code using Google test?
基本上我试图开始一些单元测试在谷歌测试,但不知道如何去做。我已经给了一些代码来尝试和测试,但我不知道如何去做这件事。这是我需要测试的一些代码吗?我应该从哪里开始呢?谢谢你的帮助。
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测试框架库自动将运行时库默认为'单线程调试'用于调试模式,'单线程调试'用于发布模式,就我所尝试的而言,从代码生成更改它的选项不可用。因此,请确保在项目中选择单线程选项作为运行时库。除此之外,这个简单而简短的教程工作完美!
祝你好运!
相关文章:
- 我如何测试代码没有调用 exit()
- 如何在使用 C 函数时测试C++代码
- 使用 gtest 框架在单元测试代码中检查目标对象的私有变量的最佳实践是什么?
- 外部 "C" Visual Studio 2015 中的显式类型错误,DLL 测试代码
- std::sort / 适用于测试代码,但无法推断出模板
- 泄漏测试代码shared_ptr奇怪的结果
- 构建和链接 Crypto++ 的测试代码
- 最佳实践:使用随机数生成器的测试代码
- VS2010在尝试编译基本JNI测试代码时出错
- UDP测试代码未接收消息(C++)
- 非测试代码中的 gtest 断言
- gtkmm 和 gstreamermm 测试代码抛出运行时错误
- 具有大量相互依赖条件的单元测试代码
- 编译测试代码时C++错误"undefined reference to"
- 测试c++代码:使用测试库
- 使用Java单元测试c++代码
- 如何从Chromium运行测试代码?
- 将测试代码构建为库或可执行文件
- CppUnit,很简单的测试代码崩溃了,为什么
- 级联结构指针测试代码中的分段错误