谷歌测试中数组的比较?

2024-02-22

我正在寻找比较谷歌测试中的两个数组。在 UnitTest++ 中,这是通过 CHECK_ARRAY_EQUAL 完成的。你在谷歌测试中是如何做到的?


我真的建议看看Google C++ 模拟框架 https://github.com/google/googletest/tree/master/googlemock。即使您不想模拟任何东西,它也可以让您轻松编写相当复杂的断言。

例如

//checks that vector v is {5, 10, 15}
ASSERT_THAT(v, ElementsAre(5, 10, 15));

//checks that map m only have elements 1 => 10, 2 => 20
ASSERT_THAT(m, ElementsAre(Pair(1, 10), Pair(2, 20)));

//checks that in vector v all the elements are greater than 10 and less than 20
ASSERT_THAT(v, Each(AllOf(Gt(10), Lt(20))));

//checks that vector v consist of 
//   5, number greater than 10, anything.
ASSERT_THAT(v, ElementsAre(5, Gt(10), _));

有很多matchers https://github.com/google/googletest/blob/main/docs/reference/matchers.md适用于每种可能的情况,您可以将它们组合起来以实现几乎任何目标。

我有没有告诉过你ElementsAre只需要iterators and size()一个类上的方法可以工作吗?因此它不仅适用于 STL 中的任何容器,也适用于自定义容器。

Google Mock 声称几乎与 Google Test 一样便携,坦率地说,我不明白你为什么不使用它。这真是太棒了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

谷歌测试中数组的比较? 的相关文章

随机推荐

  • 使用 php 析构函数适合显示 HTML 吗?

    如果实现了一个通过构造页面并调用各种方法来为页面构建 HTML 的类 那么在析构函数中定义该类的显示 回显部分是否合适 而不是有一个明确的Class displayHTML 方法 具有echo this gt html在析构函数中以及每当您
  • 在 django 过滤器后端传递模型的所有字段

    有什么办法可以让我们pass all the fields of a model to django filter backend无需显式传递 search fields 和 filter fields 中的字段名称 我制作了一个通用视图集
  • 我想要 50 个随机数组的数据,其中有 5 列和 10 行,具有唯一且无重复值。这里为什么显示重复值?

    Sub Button3 Click Dim FillRange As Range c As Range Set FillRange Range A1 A10 For x 0 To 4 Set FillRange Range A1 A10 O
  • 在保护模式下将字符打印到屏幕 ASM

    我正在尝试进入保护模式 然后打印出 Hi 但相反 它只是从我的 BIOS 中断调用中打印 正在加载操作系统 在进入 pmode 之前发生 而没有其他内容 My 引导加载程序 asm DEFINE KERNEL LOAD OFFSET 0x1
  • 在肖像模式下录制视频时的方向问题 android grafika

    我设置了设备方向Landscape模式 然后它可以完美保存视频 如果我拍摄双方的视频 但我设置了设备方向Portrait模式这个工作很奇怪 例如 下面是我录制视频时的屏幕截图 但是当我保存视频并在 MXPlayer 中查看时 它看起来像这样
  • CSS3 渐变背景,底部有不需要的空白

    当我应用 CSS3 渐变并且内容的高度不足以容纳滚动条时 我很难摆脱底部的空白 比如这里 http womancareolympia webs com http womancareolympia webs com 我尝试过将 html 和
  • 使用 Global.asax 设置/检查会话变量和重定向(用于用户测试)

    我想为我的网站添加非常简单的临时安全性 我在 Home UnderConstruction 上创建了一个页面 测试该站点的人员可以输入硬编码密码 然后将 underconstruction 会话变量设置为 false 这是我到目前为止所拥有
  • HTML 5 视频问题

    我正在尝试将我的网站设置为使用 HTML 5 视频 mp4 文件由 S3 提供 我的 MIME 类型是正确的 并且 URL 也是正确的 但它不起作用 我唯一能想到的是编解码器错误 这是我的代码
  • R - 在 Shiny 应用程序的单个页面上渲染多个绘图

    我正在尝试排列多个图表shiny应用程序 我正在尝试绘制 2 个饼图和 ggplot2 图表 require ggplot2 require gridExtra par mfrow c 2 2 z data frame x 1 10 y 1
  • React Context 不更新值以传递到另一个页面

    我正在创建一个电子商务应用程序Nextjs并希望在页面之间共享数据 我知道我们不能使用props在页面之间传递数据 所以正在研究反应contextAPI 这是我第一次使用 React context api 我研究过 发现你应该在nextj
  • notepad++ 检查重复行复杂

    Example 40000 多行 带有这样的指南 GUID 0981723409871243 在所有 GUID 中搜索重复项 Example GUID 124432408213 GUID 08917234071423 GUID 018974
  • 如何取消设置 C 中的变量以允许稍后使用具有不同数据类型的相同名称?

    我想在 C 程序中使用具有不同数据类型的相同变量名而不进行强制转换 我真的很想这么做 别问为什么 那么我该怎么做呢 如果执行时该变量不存在 我该如何处理错误预防性的取消设置 你不能 您可以获得的最接近的是创建单独的范围并在其中使用相同的变量
  • Qt - 将 QString 转换为 Unicode QByteArray

    我有一个客户端 服务器应用程序 其中客户端将使用 Qt Ubuntu 服务器将使用 C Qt 客户端将以 UTF 16 编码格式发送字符串 我已经使用 QTextCodec 类转换为 UTF 16 但每当转换发生时 它都会被填充一些更多的字
  • 如何获取引发异常的方法名

    我的代码如下所示 try productRepo GetAllProductCategories catch Exception ex Do Something 我需要一种方法来显示方法名称 假设在上述情况下 如果 GetAllProduc
  • XML 属性与元素[重复]

    这个问题在这里已经有答案了 什么时候应该使用 XML 属性以及什么时候应该使用 XML 元素 e g
  • 连接到包含 MS Access Web App 后端的 SQL Azure

    我使用 MS Access 2013 创建了一个简单的 Web 应用程序 它只有一个包含示例数据的表 我将其启动到我的共享点 在我们继续之前 我想告诉您 我正在使用 Office 365 企业版 我们需要管理 Lync SharePoint
  • cherrypy - URL 调度程序 [重复]

    这个问题在这里已经有答案了 可能的重复 在 CherryPy 中使用映射 https stackoverflow com questions 11142625 using mappings in cherrypy 如何将 url 正则表达式
  • 函数的未命名参数可以有默认值吗?

    以下代码在 C 中合法吗 void f void 0 int main f C 标准的哪一页声明这种用法是合法的 是的 这是合法的 没有标准的措辞来具体允许这种功能组合 根本没有任何可以disallow它 要么 默认参数语法适用于 a 中的
  • Java JTable 无法设置列宽

    我尝试设置列的宽度 但它根本不起作用 我一直在寻找答案几个小时 这是我的代码 任何人都可以告诉我问题是什么 提前致谢 String columns Day StratTime EndTime Description mtbl new Def
  • 谷歌测试中数组的比较?

    我正在寻找比较谷歌测试中的两个数组 在 UnitTest 中 这是通过 CHECK ARRAY EQUAL 完成的 你在谷歌测试中是如何做到的 我真的建议看看Google C 模拟框架 https github com google goo