googletest 相关问题

Google基于xUnit的C ++测试框架,可在多个平台上运行。

如何创建自动返回功能的MOCK_METHOD?

例如,有一些课程 类 foo { 民众: auto a() -> bool { 返回 true; } }; 所以我创建了这样的模拟类: 类栏:公共 foo { 民众: MOCK_METHOD(布尔, a, (), ()); }; 乙...

回答 1 投票 0

通过MOCK_METHOD模拟类时,是否需要override关键字?

可以说我有 类 Foo { 民众: VIRTUAL_FOR_TEST 无效栏(int i); }; 它被嘲笑的地方 类 FooMock : 公共 Foo { 民众: MOCK_METHOD(void, bar, (int), ()); }; Foo 应该只是...

回答 1 投票 0

lcov 分支覆盖,在 std::map 中放置/插入

我正在使用lcov 2.0检查我的gtest分支覆盖率,但是我遇到了许多由STD引起的分支,例如下面std::map中的emplace/insert/operator[]。 g++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0

回答 1 投票 0

GoogleTest 中的 Catch2 SECTION 等效项

Catch2 框架有 SECTION 的概念,这似乎使单元测试代码更具可读性。为了感受在 Catch2 与 GoogleTest 中编写某些测试会容易多少,我

回答 1 投票 0

Google 测试 Expect 来自函数的调用

假设我有一个简单的模拟测试。 #include“boost/interprocess/detail/interprocess_tester.hpp” #包括 #包括 使用命名空间::testing;

回答 1 投票 0

GoogleTest 链接错误:在 MSVS 中使用 clang 时出现“未定义符号”

我很难让 GoogleTest 在 Windows 上使用 Clang 进行编译,并且不断收到未定义的符号错误。我究竟做错了什么? 我在此解决方案中有两个项目 静态库(

回答 1 投票 0

Google Test 未找到任何测试

所以我正在努力创建我的第一个单元测试。我正在使用 Google Test,该版本当前内置于 Visual Studio 2017 中。这是概念验证的尝试,非常简单。 我...

回答 4 投票 0

使用 gtest 测试来自 MOCK_METHOD 调用的 std::vector 参数

有没有办法将向量引用中的数据存储到 MOCK_METHOD 中? 我有以下模拟界面: MOCK_METHOD(bool, SetData, (const std::vector& data), (override)); ...

回答 2 投票 0

gtest_discover_tests 的 LD_LIBRARY_PATH(在 QtCreator 中?)

我有一个 CMAKE 项目,其中包含两个子目录:库和测试。当需要枚举测试时,gtest_discover_tests 运行测试可执行文件,但因为测试可执行文件...

回答 1 投票 0

如何使用gmock MOCK_METHOD进行重载运算符?

我是 googlemock (和 StackOverflow)的新手。我在 googlemock 中使用 MOCK_METHODn 时遇到问题,我相信这个函数被广泛使用。这就是我所做的。 我有一个抽象类 Foo ,带有 v...

回答 1 投票 0

如何使用通用公差测试我的测试值?

在以下测试中,TestParticleForce 成功,但 TestParticlePotentialEnergy 失败,即使它们都使用相同的精度。 据我了解,EXPECT_NEAR(-0.00011127498,...

回答 1 投票 0

检测辅助方法中的断言失败

我希望在我的测试中有一个帮助方法来涵盖一些经常执行的检查。考虑这个例子: 无效 checkAsserts(int a, int b, int c) { EXPECT_EQ(a, b); EXPECT_GT(b, c...

回答 1 投票 0

从终端使用 GoogleTest 项目构建 CLion CMake

我可以在 CLion 中使用 GoogleTest 构建 CMake 项目。但我无法从终端构建它。在将 GoogleTest 构建为依赖项时,我遇到了很多错误。我也尝试在没有

回答 1 投票 0

EXPECT_CALL() 宏在尝试抛出自定义异常时无法编译

我有以下代码 test.cpp ,无法编译(使用 g++ test.cpp -lgtest -lgmock -pthread -lfmt 编译),我收到此错误: 无法转换‘std::forward 我有以下代码 test.cpp ,无法编译(使用 g++ test.cpp -lgtest -lgmock -pthread -lfmt 编译),我收到此错误: 无法将‘std::forward从‘CustomException’转换为‘fmt::v8::format_string<>’ 这段代码的正确版本应该是什么:)? #include <gtest/gtest.h> #include <gmock/gmock.h> #include <stdexcept> #include <fmt/core.h> using ::testing::_; using ::testing::Throw; class CustomException : public std::exception { public: template <typename... Args> explicit CustomException(Args&&... args) : _exception_string{fmt::format(std::forward<Args>(args)...) + _exception_suffix} { } inline const char* what() const noexcept override { return _exception_string.c_str(); } private: std::string _exception_suffix{" Custom exception..."}; std::string _exception_string{}; }; class Calculator { public: virtual double Divide(double a, double b) { if (b == 0.0) { throw std::invalid_argument("Division by zero"); } return a / b; } }; // Mock class for Calculator class MockCalculator : public Calculator { public: MOCK_METHOD(double, Divide, (double a, double b), (override)); }; TEST(CalculatorTest, DivideWithExceptions) { MockCalculator mockCalculator; EXPECT_CALL(mockCalculator, Divide(10.0, 0.0)) .WillOnce(Throw(CustomException("Division by zero"))); // Test division by zero try { double result = mockCalculator.Divide(10.0, 0.0); FAIL() << "Expected exception not thrown."; } catch (const std::invalid_argument& e) { EXPECT_STREQ(e.what(), "Division by zero"); } } int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } 这样的构造函数将起作用: template <typename... Args> explicit CustomException(std::string_view fmt, Args&&... args) : _exception_string{fmt::format(fmt, std::forward<Args>(args)...) + _exception_suffix} { } 我填写它与P2216R3有关,通过参数展开收到的格式字符串不是constexpr。不幸的是我没有时间在文章中进行北斗潜水。

回答 1 投票 0

CMAKE Linux Mint 构建 gtest “/usr/bin/ld: 找不到 -lThreads::Threads: 没有这样的文件或目录”

CMAKE Linux Mint 构建 gtest “/usr/bin/ld: 找不到 -lThreads::Threads: 没有这样的文件或目录” 这是 apt-get install libgtest-dev 后开箱即用的 Gtest 工作完美...

回答 1 投票 0

通过 colcon 启动的 GTest 获得 SEGFAULT

我正在使用 colcon 为我的 ROS2 应用程序运行测试。 到目前为止我还没有遇到任何问题,但是现在添加一个简单的固定装置之后 类 ElectionTest : public ::testing::Test { 受保护: ...

回答 1 投票 0

有没有办法教 gtest 使用 libfmt 的格式化程序打印用户定义的类型?

我想知道是否有一种方法可以让 gtest 理解用户定义类型 libfmt 的格式化程序,以便打印可读的错误输出? 我知道如何教 gtest 理解用户-

回答 2 投票 0

Google 测试:断言等于两个值之一

GoogleTest 中是否有类似以下内容的内容: ASSERT_EQ_ONE_OF_TWO(测试值,值1,值2) 它测试 TestValue == Value1 || 是否测试值 == 值2? 这个变体: ASSERT_TRUE(测试值 == 值 1 ||

回答 4 投票 0

在“WindowsStore”(UWP)下使用 CMake 构建时,GoogleTest 无法运行,错误代码为 0xc0000135

我正在尝试将 gtest 添加到由 CMake 构建的现有 UWP 项目中。 构建过程似乎很好,我可以使用以下命令创建和构建项目: cmake ../ -G “Visual Studio 15 2017

回答 1 投票 0

gtest:检查字符串是否等于两个字符串之一

考虑我有两个字符串: std::string s1 = "ab"; std::string s2 = "cd"; 我想检查(例如使用 EXPECT_EQ)某些给定的 std::string str 是否等于 s1 或 s2。 如果 gtest

回答 3 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.