草庐IT

Googletest

全部标签

C++、Googlemock - 测试本地对象

我开始使用googletest和googlemock库,但遇到无法解决的问题。我有这样的代码:classPainter{public:voidDrawSomething();};voidPainter::DrawSomething(){Turtleturtle;turtle.doSomething();}main(){Painterp;p.DrawSomething();}我已经模拟了Turtle类,但是当本地创建turtle对象时,我如何测试doSomething()方法(例如使用EXPECT_CALL)?不修改Painter类是否可行?感谢您的回答。 最

c++ - 如何让 Eclipse 控制台显示与终端中相同的 GoogleTests 输出?

我使用GoogleTest广泛,控制台中的输出如下所示:当我从Eclipse中运行相同的程序时(使用今天最新的EclipseMars),我得到以下没有颜色和垃圾字符的输出(只是将输出粘贴到这里是不可见的):Runningmain()fromgtest_main.cc[0;32m[==========][mRunning3testsfrom1testcase.[0;32m[----------][mGlobaltestenvironmentset-up.[0;32m[----------][m3testsfromNloptAdapterSuite[0;32m[RUN][mNloptAda

c++ - 如何使用 cmake 一次运行所有 gtest 文件?

我有几个包含不同类测试的.cpp文件,看起来像这样:#includenamespace{//lotsoftests}intmain(intargc,char**argv){::testing::InitGoogleTest(&argc,argv);returnRUN_ALL_TESTS();}和一个如下所示的CMakeLists.txt文件:add_subdirectory(/usr/src/gtestgtest)include_directories(${GTEST_INCLUDE_DIR})add_executable(TestATestA.cpp)target_link_libr

c++ - googletest:如果测试失败则执行附加操作

我希望能够将数据保存到磁盘以防测试失败。有没有办法在googletest框架内做到这一点?TEST_F(test_similarity,are_similar){ASSERT_GT(1e-10,norm(im0,im1));//Iftestfailssaveimagestodiskforcomparison:imwrite("im0.png",im0);imwrite("im1.png",im1);} 最佳答案 有Test::HasFailure()、Test::HasNonfatalFailure()和Test::HasFatal

c++ - Gtest : test compiling error

我正在尝试测试我用googletest编写的电机控制库,但我没有编译测试代码。测试位于名为test.cpp的文件中,如下所示:#include#include"../motor.hpp"TEST(constructorTest,contructorDefault){}我将测试主函数放在另一个名为main.cpp的文件中。#include#include"../motor.hpp"intmain(intargc,char*argv[]){::testing::InitGoogleTest(&argc,argv);RUN_ALL_TESTS();}为了编译,我执行了以下行:g++main.

c++ - 我可以将参数传递给 googletest 测试函数吗

在使用gtest构建我的测试文件xxxxtest之后,我可以在运行测试时传递参数吗,例如./xxxxtest100。我想用参数控制我的测试函数,但我不知道如何在我的测试中使用para,你能给我一个测试示例吗? 最佳答案 您可以执行以下操作:主.cc#include#include"gtest/gtest.h"#include"my_test.h"intmain(intargc,char**argv){std::stringcommand_line_arg(argc==2?argv[1]:"");testing::InitGoogle

c++ - 如何期待 gtest 中的程序退出?

我正在测试一些使用来自glog的CHECK的代码我想测试在某些情况下此检查是否失败。我的代码如下所示:voidMyClass::foo(){//stuff...//It'sactuallyimportantthatthebinarygetsabortedifthisflagisfalseCHECK(some_flag)我已经对gtest进行了一些研究,以及我如何能够对此进行测试。我找到了EXPECT_FATAL_FAILURE、EXPECT_NONFATAL_FAILURE和HAS_FATAL_FAILURE,但我还没弄清楚如何使用它们。我相当有信心,如果我将CHECK(some_fl

c++ - 使用谷歌测试来检查回调

我有一个Foo类,它存储一个指向回调的指针。可以使用InvokeCallback()方法调用回调。void*SomeCallback(void*a){return(void*)(*(int*)a+10);}classFoo{public:typedefvoid*(*CallbackFunction)(void*);SetCallback(CallbackFunctioncallback){this->callback=callback;}InvokeCallback(){callback(20);}private:CallbackFunctioncallback;}如何测试(使用goo

c++ - 将 QTest 与其他框架进行比较

你能比较流行的C++单元测试框架和Qt的QTest吗?(cppunit、boost测试、google测试等。)有什么优点缺点?谢谢。注意:GUI测试对我们来说不是很重要。 最佳答案 QTest是我所知道的唯一用于单元测试UI组件的框架。我们使用它取得了一些成功,但坚持使用Boost.Test进行常规单元测试。 关于c++-将QTest与其他框架进行比较,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/

c++ - 如何使用 Google Test 捕获段错误?

如何测试函数不会产生段错误?这是我现在知道的,我可以做的:EXPECT_DEATH(foo(nullParameter))在函数旁边,产生了一个段错误,这是我想让它失败的行为。上面的代码片段将使测试通过,因为这是预期的,进程的死亡。现在,我怎样才能让它失败? 最佳答案 这是一个函数,如果传递了一个空指针参数,就会出现段错误,否则不是:intderef(int*pint){return*pint;}这是一个测试该行为的googletest程序:main.cpp#includeintderef(int*pint){return*pint