Google基于xUnit的C ++测试框架,可在多个平台上运行。
如何减少此代码中包含 std::string operator+ 的未覆盖分支?
我正在使用lcov2.0检查我的测试分支覆盖率,遇到这个问题。 // 源代码 void test_string_plus(const string&本地,const string&远程) { 静态字符串recv_msg; ...
为什么 googletest 需要 -lpthread 选项?
我被告知执行 g++ test.cpp -lgtest -lpthread 来生成单元测试。 我想知道为什么 googletest 需要 -lpthread 库。因为我的代码不包含 pthread 中的任何内容
我一直在尝试为我的项目创建两个单独的可执行文件:一个用于项目本身,另一个用于运行单元测试。一切都编译正常,但是当我运行可执行文件时...
FindPackage(GTest CONFIG REQUIRED) 找不到 GTestConfig.cmake,即使它存在
我在我的项目中使用 vcpkg 作为依赖项,并在 CMake 中收到以下错误 CMakeLists.txt 处的 CMake 错误:14(find_package): 找不到...提供的包配置文件
如何更正我的 CMakeLists.txt 以便我的项目可以在 Linux 和 Windows 上构建?
我正在进行一个项目,最近添加了新功能和随附的单元测试。该项目的结构如下所示: 辛 └── 型号 ├── 其他型号 └── 我的模型 ├──
std::向量向量1(10); std::向量向量2(10); std::fill(向量1.开始(),向量1.结束(),2); std::fill(vector2.begin(), vector2.end(), 2); EXPECT_EQ(向量1,向量...
如何构建 google 测试和 google 模拟库并在 VS 控制台应用程序中使用它们?
如何创建基于 google test 的单元测试项目,将最新的 gtest.lib 和 gmock.lib 集成到控制台应用程序或空项目中(不想使用 Visual Studio google 测试项目
如何告诉 Google Test make 文件安装到 Linux 上 /usr/local 以外的文件夹?
我有一位客户需要我在 Docker 容器中安装 Google Test,但希望将其安装在 /opt 而不是 /usr/local 中。我在发出 &
在Google测试中使用EXPECT_NO_THROW有好处吗?
在 gtest 中,可以使用 EXPECT_NO_THROW 宏来验证操作是否不会引发异常。 当代码确实抛出异常时,测试用例将被标记为失败。 然而,如果
如何使用 gmock 匹配 C++ 元组中的一个元素? 例如,让我们尝试从 std::tuple 中提取 std::string 。 我知道我可以编写一个自定义匹配器,例如...
C++ Google 测试和 Visual Studio 链接器错误
我正在尝试使用 google 测试框架为我在 Visual Studio 中的 C++ 项目编写测试。 这是我当前的项目结构: 解决方案 | +-- 项目 | | | +-- 源代码 | | | ...
在 azure devops 中使用 google test 可执行文件时,vstest 任务找不到任何测试
我一直在尝试使用 azure devops 管道中的 vstest@2 任务运行测试,但在使用 google 测试可执行文件时从未发现任何测试。我确实有指定的测试组件...
在 AndroidStudio 上编译的 GoggleTest 在使用 arm64 手机时不会出现 Win32 应用程序错误
我编译的谷歌测试给了我以下错误: 运行测试可执行文件时出错。 路径: 'C:/repository/app/build/intermediates/cxx/Debug/6t1p3yv6/obj/arm64-v8a/UnitTest' 结果:%...
我有一个名为 onStartingExecute() 的函数; 从术语上讲,它调用了许多函数,如下所示...... tt_init_device(); tt_init_port(); tt_init_pipeline(); .... 等等.... 我写了一个GTest案例...
我有一个c文件可以从google test测试它。它有一个回调函数及其注册函数。 如何为 gtest 注册回调?这是示例代码: #包括 我有一个 c 文件可以从 google test 进行测试。它有一个回调函数及其注册函数。 如何为 gtest 注册回调?这是示例代码: #include <gtest/gtest.h> ///////////////////////////////////////// // I have this code in c file ///////////////////////////////////////// void (*add)(int a, int b); void RegisterAddCallback(void (*callback)(int a, int b)) { add = callback; } ///////////////////////////////////////// // I use this way currently // static int s_value; // static void add_static_callback(int a, int b) // { // s_value = a + b; // } class CallbackTests : public ::testing::Test { public: int m_value; void SetUp() override { m_value = 0; } static void add_static_callback(int a, int b) { // can't add m_value here, but I need it int value = a + b; } }; TEST_F(CallbackTests, StaticCallback) { RegisterAddCallback(add_static_callback); add(1, 2); EXPECT_EQ(m_value, 3); } 这是测试结果。我想通过使用夹具将 m_value 设为 3。但我对任何工作方式都持开放态度。 Expected equality of these values: m_value Which is: 0 3 [ FAILED ] CallbackTests.StaticCallback (0 ms) 一个函数做一些没有被外部反映的事情有什么意义呢?您需要将 add 指针更改为函数。 您有很多选择,所有这些都包括向静态方法添加参数,或返回值: 添加对结果的引用,例如: static void add_static_callback(int& res, int a, int b) { res = a+b; } //call with: add(m_value, 1, 2); 添加返回值,但您需要更改 add 指向函数的指针。
虽然 ASSERT_* 宏导致测试用例终止,但 EXPECT_* 宏继续其评估。 我想知道决定使用其中之一的标准是什么。
我遇到了一个相当奇怪的问题,告诉 googletest 使用 PrintTo 按我想要的方式打印某个类。 该类是一个非常简单的 2D 点,它位于命名空间中,并且 PrintTo 函数是...
例如,有一些课程 类 foo { 民众: auto a() -> bool { 返回 true; } }; 所以我创建了这样的模拟类: 类栏:公共 foo { 民众: MOCK_METHOD(布尔, a, (), ()); }; 乙...
通过MOCK_METHOD模拟类时,是否需要override关键字?
可以说我有 类 Foo { 民众: VIRTUAL_FOR_TEST 无效栏(int i); }; 它被嘲笑的地方 类 FooMock : 公共 Foo { 民众: MOCK_METHOD(void, bar, (int), ()); }; Foo 应该只是...
我正在使用lcov 2.0检查我的gtest分支覆盖率,但是我遇到了许多由STD引起的分支,例如下面std::map中的emplace/insert/operator[]。 g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0