googletest相关内容
我想在我的项目中使用GMock。首先,我编译了GMock和GTest。我的操作顺序(我使用Linux): Git克隆googlemock和googletest 转到git/googletest/googlemock/Build-aux/目录run cmake.. 然后制作 我得到的结果是:libgmock.a和libgmock_main.a My project的结构为:构建、In
..
当无法通过被调用函数的不同输入参数识别调用时,我如何从模拟工厂返回多个对象?unique_ptr 我正在做此操作: EXPECT_CALL(MyFactoryMock, create()) .WillRepeatedly(Return(ByMove(std::make_unique()))); 运行时错误为: [致命] /.../tools
..
如何从返回STD::UNIQUE_PTR的模拟工厂函数返回多个模拟对象? Return(ByMove(...))不能用于多次返回。 正在尝试根据以下答案进行工作: https://stackoverflow.com/a/70751684/3545094 我想出了这个: class MyType { public: virtual ~MyType() {} }; clas
..
给定以下模拟方法 MOCK_METHOD2(send, int(const void* pBuffer, size_t szBuffer)); 和以下用法 EXPECT_CALL(socketMock, send(_, _)) .Times(1) .WillOnce(ReturnArg()); 由于szBuffer隐式转换为int的返回类型,将在Retur
..
我有一个C++11头文件,它有一个声明为my_const_value的常量值。以及一个名为GetValue的函数,该函数使用const值运行复杂逻辑并返回期望值。 我想用my_const_value的不同值对GetValue进行单元测试。 我知道这不可取,但为了编写GetValue的单元测试,我希望使用不同的my_const_value值来测试GetValue。在C++中是否有一些类似
..
我正在对派生类进行单元测试,希望EXPECT_CALL调用属于其基类的某个方法。 例如: class Base { public: void move(int x, int y); }; class Derived: public Base{ public: RESULT update(); private: int age; }; HRESULT Der
..
我已经编写了一个类似下面的Google测试,将一些计算值与CSV文件中存储的预期值进行比较。 class SampleTest : public ::testing::Test{ public: void setupFile(const std::string& filename) { // open csv file here } void che
..
我发现Google测试有一个意想不到的行为,当涉及到死亡测试和对模拟对象的期望时。 检查以下示例: #include #include class Interface { public: virtual void foo() = 0; }; class InterfaceMock : public Interface {
..
我怎么能预期Google测试会有多个失败?我在测试被测代码中发生断言时使用它。因为这些断言不是致命的,所以可能会发生多个。 以下测试用例再现了这一点: void failTwice() { EXPECT_TRUE(false)
..
我有一个C++项目,其中我使用Google测试来编写单元测试。这个项目已经存在了一段时间,而且相当混乱,所以我只是在主函数的开头添加了一行代码,用于启动单元测试,然后退出程序。然后,我会注释和取消注释此行,以便在单元测试和实际应用程序之间进行切换。 仅当我使用我的代码时,这工作得很好,但现在我正试图用两个项目和.exe文件来解决这个问题,一个用于实际应用程序,一个用于测试,就像Toussa的答案
..
我正在处理的一个项目链接到Google测试(Gtest)作为依赖项。使用Google测试项目中包含的CMakeList,通过CMake的接口依赖项将Google测试头包含在项目中。 target_link_libraries (our_project gtest gmock) 我们在项目中使用的一些警告标志是在Google测试中打印大量警告--例如,GCC的-Wsuggest-over
..
我有一公吨的使用Google测试的单元测试。 目前正在使用XCode,我注意到其他一些测试框架会在每个单元测试的末尾检测内存泄漏,我假设有一种规定的方法可以用Google测试来做同样的事情。我希望这不是Boost测试的一个功能,也不是仅有的几个其他功能。 如果有人能给我指路,我将不胜感激。而是避免切换测试框架。 现在,我认为valgrind可能值得研究一下,我只是不确定如何连接到
..
当断言_*宏会导致测试用例终止时,Expect_*宏会继续求值。 我想知道决定使用其中一个的标准是什么。 推荐答案 当必须满足条件时,使用ASSERT-如果不满足,则测试立即停止。如果没有此条件,则在测试的其余部分不具有语义意义时使用此选项。 当条件应该成立时使用EXPECT,但在条件不成立的情况下,我们仍然可以从继续测试中获得价值。(不过,测试最终仍将失败。) 经验法则是
..
我正尝试在单元测试中使用GMock。但链接失败,并出现下一个错误: In function `testing::internal::linked_ptr_internal::depart()': /home/user/googletest/googletest/include/gtest/internal/gtest-linked_ptr.h:127: undefined reference
..
我有一个类,比如说ClassA,它既有一些公共函数也有一些私有函数。 公共函数轮流类私有函数。 现在我在这里的目的是通过公共函数测试私有函数。 对于公共函数,我尝试调用原始实现,而对于私有方法,我尝试创建一个Mock函数。 我的A班是这样的 class ClassA { public: string getName(string key) { int value
..
让 GTEST_DIR 成为存储 googletest 目录路径的环境变量.(我从 googletest 的 github repo 克隆了 googletest-master.) 我 cd'ed 到 $GTEST_DIR,做了一个 mkdir build &&cd build,然后执行以下命令: cmake .. -DCMAKE_C_COMPILER=$GNU-6.0.0/bin/gcc
..
我是单元测试领域的新手,基本上我是 C++ 开发人员,在大型产品上工作了将近 3 年,现在我决定对我的代码执行自动化单元测试.为此,我在互联网上做了很多研究,遇到了很多工具和框架,最后选择了以下两个:1) Boost 测试库2) C++ 谷歌测试框架 现在我很困惑从这些中选择哪个.如果有人使用上述任何一种,请分享您的经验. 解决方案 下面的 SO 帖子几乎可以回答你的问题 c+
..
似乎有一些答案有点,有点道理,但我不知道如何执行.而且我还没有找到一个全面的答案. 第一个问题 Google Test 不应是已安装的库,而应与项目一起构建.(请参阅 常见问题解答.)可以看出,这意味着 Google 测试库是我的单元测试的依赖项,应该在我第一次在我的项目中运行“make check"时构建.这应该在某个目录中构建 Google 测试库.我不知道该怎么做.它提到了一些已
..
我将 Microsoft.googletest.v140.windesktop.msvcstl.static.rt-dyn 包安装到我的 VS 2017 应用程序解决方案中.这是通过“添加新项目/其他语言/C++/Test/Google 测试"向我的解决方案添加一个新的 GoogleTest 项目来实现的. 测试运行良好,但现在我准备尝试使用 gmock 进行一些模拟.所以,我通过 NuGe
..
Google 的 C++ 测试框架有两个输出库:一个是 gtest.lib,另一个是 gtest_main.lib.根据 Nik Reiman 的回答 如何使用 Visual Studio 设置 gtest,我们应该链接到 gtest_main.lib,但我正在链接到 gtest.lib,并且我的示例测试用例运行良好. 这两个库有什么区别,我链接到哪个库有关系吗? 解决方案 唯一合理
..