草庐IT

c++ - 如何将 Google Test 测试用例标记为 "expected to fail"?

我想为尚未实现的功能添加一个测试用例,并将此测试用例标记为“没关系,我失败了”。有办法吗?编辑:我希望执行测试,只要测试用例处于“预期失败”状态,框架就应该验证它是否失败。编辑2:好像我感兴趣的功能在google-test中不存在,但是theBoostUnitTestFramework中确实存在,并在LIT. 最佳答案 EXPECT_NONFATAL_FAILURE是您希望将预期失败的代码包装起来的内容。请注意,您必须包含gtest-spi.h头文件:#include"gtest-spi.h"//...TEST_F(testclas

c++ - 如何使用 boost::test 库组织测试用例?

我有一个包含50多个.H/.CPP文件/类的项目。我想用自己的测试用例来测试每个类,其中将包括用于测试每个类不同方面的方法。我的类位于不同的目录中,如下所示:/project/include/SuperModuleFoo.hFoo.cpp..Alpha.hAlpha.cpp../test//Iassumethatmytestsshallbeheremain.cppMakefile我想使用boost::test作为单元测试框架。我应该如何组织我的文件,我应该如何命名它们等等。一些提示或链接或建议将不胜感激。谢谢。 最佳答案 我们在类似

c++ - 来自 Parasoft C++test 的混淆控制流分析

我们使用ParasoftC++test静态分析我们的代码。它在使用如下代码时遇到问题:voidfoo(int*x){try{bar();}catch(...){deletex;throw;}*x;}它在*x;行警告:Freedmemoryshouldn'tbesubsequentlyaccessedunderanycircumstances不知何故得出结论,控制流可以传递到catch(...)block,删除x,经过throw;,并使其成为*x;。我尝试了throwstd::exception("");和其他几个,得到了同样的结果。Parasoft当然知道异常并将它们合并到其控制流中,

c++ - 使用 Google Test、Clang 和 libc++ 构建测试时遇到问题

我尝试使用以下CMake配置构建GoogleTest:$CMAKE_CXX_COMPILER="clang++"CMAKE_CXX_FLAGS="-std=c++11-stdlib=libc++-U__STRICT_ANSI__"cmake../sourceBuilding显示CMake选择了正确的编译器,但我的编译器标志没有通过:$VERBOSE=1make.../Users/jfreeman/local/bin/clang++-I/Users/jfreeman/work/googletest/source/include-I/Users/jfreeman/work/googlete

c++ - 如果私有(private)变量已更改,如何进行单元测试

假设我在C++中有这个类:classExampleClass{private:intexample_var;public:voidexampleMethod(){example_var=other_value;//othervaluewillbealwaysdifferent}}如何对exampleMethod()进行单元测试?我想做这样的事情:voidtestExampleMethod(){ExampleClassobj;intbefore_call_value=obj.example_var;obj.exampleMethod();intafter_call_value=obj.e

Parasoft C++test 单元测试常见问题总结-2

这里写自定义目录标题单元测试常见问题总结1.QT项目测试环境-没有生成moc_文件2.QT图形界面的类初始化失败的问题3.测试用例程序启动失败4.由于循环出现测试超时5.桩函数常用接口单元测试常见问题总结1.QT项目测试环境-没有生成moc_文件error:LNK2001:无法解析的外部符号“public:virtualstructQMetaObjectconst*…错误提示如图:配置方法如下:选择需要生成moc文件的类的.h文件,鼠标右键属性,配置属性->常规,在项类型中将C/C++标头,改为自定义生成工具,点击应用然后将自定义生成工具配置如下:命令行:“$(QTDIR)\bin\moc.e

c++ - 发送到应用程序的 CTRL-C 的单元测试

我正在开发一个处理CTRL-C的应用程序。我正在生成一个信号处理程序来正常关闭线程和其他资源。我想在我的应用程序可能存在的不同场景中测试CTRL-C。我知道如何为被测进程设置那些,但我需要一种方法(在运行测试套件的代码中)来检查是否达到该条件以准确调用CTRL-C.我在Linux中工作,我想在CPPUNIT的帮助下自动运行我的测试。在我的每个CTRL-C测试中,我开始这个过程,然后我发送CTRL-C使用kill具有进程PID的函数。我正在使用共享内存;一旦测试的应用程序达到我感兴趣的条件或我想发送CTRL-C的点,我就将标记或状态写入共享内存。同时,在不同进程中运行的测试套件代码不断轮

随机测试 Monkey Test

今天说一说随机测试,MonkeyTest。翻译成中文就是猴子测试。你可以想象一只猴子趴在电脑面前,拿着鼠标随便乱点的样子。一,什么是随机测试?软件测试中的Monkey测试是测试人员对应用程序随机输入以验证其功能的一种方法。这是一种功能性黑盒测试方法,在没有足够的时间编写和执行测试时使用。Monkey测试也被称为随机测试,可以用于移动、web和桌面应用程序。它通常被实现为随机和自动化的单元测试,这使得它很有优势,因为它可以快速评估软件的可靠性。二,随机测试的特点Monkey测试在不考虑规格的情况下自动执行。测试的主要目标是识别程序中的bug和错误,以确保产品可以向公众发布。以下是Monkey测试

c++ - 如何使用 Boost.Test 比较文件?

我有两个文件需要比较。我会用这样的东西BOOST_REQUIRE_EQUAL(filename1,filename2); 最佳答案 您可以使用BOOST_CHECK_EQUAL_COLLECTIONS比较文件内容。代码示例:#defineBOOST_TEST_MAIN#include#include#includeBOOST_AUTO_TEST_CASE(test){std::ifstreamifs1("data1.txt");std::ifstreamifs2("data2.txt");std::istream_iteratorb

c++ - 如何对写入 stdout/std::cout 的函数进行单元测试

我正在研究单元测试。据我所知,几乎所有单元测试都使用返回值或输出参数作为其测试用例中的预期值。没有返回值或输出参数的函数的期望值是多少?例子:voidunit_test(){cout当然,这个功能很简单。所以,这个功能似乎不需要单元测试。但这只是一个示例。你认为unit_test函数有副作用吗?你会如何测试它? 最佳答案 如果您正在编写一个您知道应该测试的函数,那么您应该将其设计为在您的框架中可测试。在这里,如果您的测试是在您可以验证流程输出的流程级别完成的,那么写入std::cout就可以了。否则,您可能希望将输出流作为函数的参数