问题标签 [googletest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5875 浏览

unit-testing - 使用谷歌测试测试崩溃

在谷歌测试中,我希望能够做这样的事情:

而且我希望输出显示该语句实际上使进程异常终止的错误。

谷歌测试对此有任何支持吗?我很确定我将如何自己实现它,所以我几乎可以肯定它是可能的。

0 投票
6 回答
5019 浏览

c++ - 将 gtest 配置为仅在控制台中显示失败的测试

是否有仅显示失败测试的选项?我不得不改用吉他来实现这一点,但我想念命令行工具。

0 投票
1 回答
336 浏览

unit-testing - googletest 打印 COleDateTime 值

我已将 googletest 集成到我们的 MFC 应用程序中。但是,在编写涉及 COleDateTime 对象的测试时,我遇到了以下警告:

测试如下:

问题是我无法添加 << 运算符或 PrintTo 方法作为文档宣布。分配更多测试将涉及日期值,因此我想避免文档引用的内联解决方案。

是否有一个很好的解决方案来控制 COleDateTime 值的打印字符串?

当前输出如下:

注意实际值!

0 投票
1 回答
1771 浏览

c++ - makefile.am 可以为一组目标设置 LDADD 吗?

我将单元测试放在源代码的同一目录中。但是我如何在 Makefile.am 中为所有这些单元测试设置 LDADD 以使用特定的库(例如谷歌测试)?

0 投票
1 回答
2419 浏览

c++ - 如何使用谷歌测试抑制由 assert() 引起的运行时错误?

我在 C++ 项目中使用谷歌测试。一些函数使用 assert() 来检查无效的输入参数。我已经阅读了关于死亡测试(什么是谷歌测试,死亡测试)并开始在我的测试用例中使用它们。

但是,我想知道是否有办法抑制由失败的断言引起的运行时错误。此时,每个失败的断言都会创建一个弹出窗口,每次运行测试时我都必须关闭。随着我的项目的发展,这种行为越来越以不可接受的方式扰乱工作流程,我倾向于不再测试 assert() 断言。我知道通常可以禁用断言,但是从测试框架内部抑制操作系统生成的警告似乎更方便。

0 投票
1 回答
11247 浏览

c++ - GoogleTest:如何设置断点?

我正在使用带有 Google 测试的 Visual Studio 2010 C++。我的测试项目有一个构建后事件来运行测试项目。这有效,谷歌测试测试结果显示在 Visual Studio 输出窗口中。但是,现在我想设置一个调试断点来逐步完成测试。当我在我的测试代码或它调用的代码中设置断点时,什么都没有发生。

如何使用谷歌测试设置断点?或者更准确地说,我怎样才能让它触发调试器?

0 投票
2 回答
7817 浏览

c++ - C++,谷歌测试/模拟:测试和对象类型的断言

我有这个(不是真的,只是一个简单的例子):

我需要检查函数的结果类型(这里没有任何意义,我保证我的例子更复杂),谷歌测试/模拟是否支持这种断言?

我尝试使用 A<T> 的 EXPECT_THAT,但我无法做到这一点。

谢谢。

0 投票
2 回答
1793 浏览

c++ - 谷歌测试:“从宽字符串初始化的字符数组”

我已经实现了类型参数化测试(Sample #6)以将相同的测试用例应用于多个类。碰巧将字符串分配给 a signed char[]、或时unsigned char[],我得到:const signed char[]const unsigned char[]

更有趣的是,当将测试用例应用于一种类型时,一切都很好,但是当我添加第二种类型时,它就崩溃了。我可以在以下代码中重现错误:

在该行typedef Types<std::istream, std::ostream> Implementations;中创建了一个称为类型的列表,Implementations在下一行中TYPED_TEST_CASE(IosTest, Implementations);,定义了测试用例IosTest将应用于Implementations列表中定义的类型。

正如我已经说过的,如果我从列表中删除其中一个std::istreamstd::ostreamImplementations列表中删除,我可以编译并运行测试而不会发出任何警告(我正在使用-Wall标志)。谁能解释这种现象?

0 投票
2 回答
15360 浏览

unit-testing - Google 测试中的自定义 EXPECT_NEAR 宏

范围:使用 Google Test 和 OpenCV。

我想测试一下 my Vec3fequals another Vec3fVec3f是 OpenCV 中维数为 3 的向量,类型为浮点数。==-运算符已定义,因此EXPECT_EQ(Vec3f(), Vec3f())有效。

但由于它们是浮点数,我想使用EXPECT_NEAR(float a, float b, float delta)宏。我该怎么做才能像使用它一样使用它EXPECT_NEAR(vec_a, vec_b, float delta)

目前我正在遍历向量的每个元素并在那里执行 EXPECT_NEAR 。

这可能是相关的:GoogleTest 中用于不等于双重比较的便捷方法?

0 投票
2 回答
733 浏览

unit-testing - Scala 中提供更多信息的断言

我正在寻找谷歌测试框架风格的断言,其中像 ASSERT_LT(a, b) 这样的东西将检查 $a 是否小于 $b,如果不是,将打印 $a 和 $b 的值错误信息。到目前为止,我发现的断言只是停止执行,默认情况下不打印任何有用的东西。任何指针?

奖励:我喜欢编写大量断言代码(不仅仅是在测试中),所以如果断言能够快速评估,那就太好了。

上下文:我在使用此代码作为模板编写单元测试时遇到了这个问题。