在 GoogleTest 中使用 ASSERT 和 EXPECT

2024-04-22

当 ASSERT_* 宏导致测试用例终止时,EXPECT_* 宏继续其评估。 我想知道决定是否使用其中之一的标准是什么。


Use ASSERT当条件must保持 - 如果没有,测试就在那里停止。当测试的其余部分在不满足此条件的情况下不具有语义意义时,请使用此选项。

Use EXPECT当条件should保持,但如果没有,我们仍然可以从继续测试中获得价值。 (不过,测试最终还是会失败。)

经验法则是:使用EXPECT默认情况下,除非你require为其余测试保留的东西,在这种情况下你应该使用ASSERT对于该特定条件。


这在内部得到了呼应primer https://google.github.io/googletest/primer.html:

Usually EXPECT_*是首选,因为它们允许在测试中报告多个失败。但是,您应该使用ASSERT_*如果当相关断言失败时继续没有意义。

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

在 GoogleTest 中使用 ASSERT 和 EXPECT 的相关文章

  • Web 客户端和 Expect100Continue

    使用 WebClient C NET 时设置 Expect100Continue 的最佳方法是什么 我有下面的代码 我仍然在标题中看到 100 continue 愚蠢的 apache 仍然抱怨 505 错误 string url http
  • 为什么两个不同的 Base64 字符串的转换会返回相等的字节数组?

    我想知道为什么从 base64 字符串转换会为不同的字符串返回相同的字节数组 const string s1 dg const string s2 dq byte a1 Convert FromBase64String s1 byte a2
  • 动态加载程序集的应用程序配置

    我正在尝试将模块动态加载到我的应用程序中 但我想为每个模块指定单独的 app config 文件 假设我的主应用程序有以下 app config 设置
  • 秒表有最长运行时间吗?

    多久可以Stopwatch在 NET 中运行 如果达到该限制 它会回绕到负数还是从 0 重新开始 Stopwatch Elapsed返回一个TimeSpan From MSDN https learn microsoft com en us
  • 查找c中结构元素的偏移量

    struct a struct b int i float j x struct c int k float l y z 谁能解释一下如何找到偏移量int k这样我们就可以找到地址int i Use offsetof 找到从开始处的偏移量z
  • 使用实体框架模型输入安全密钥

    这是我今天的完美想法 Entity Framework 中的强类型 ID 动机 比较 ModelTypeA ID 和 ModelTypeB ID 总是 至少几乎 错误 为什么编译时不处理它 如果您使用每个请求示例 DbContext 那么很
  • BitTorrent 追踪器宣布问题

    我花了一点业余时间编写 BitTorrent 客户端 主要是出于好奇 但部分是出于提高我的 C 技能的愿望 我一直在使用理论维基 http wiki theory org BitTorrentSpecification作为我的向导 我已经建
  • Clang 3.1 + libc++ 编译错误

    我已经构建并安装了 在前缀下 alt LLVM Clang trunk 2012 年 4 月 23 日 在 Ubuntu 12 04 上成功使用 GCC 4 6 然后使用此 Clang 构建的 libc 当我想使用它时我必须同时提供 lc
  • 如何从 appsettings.json 文件中的对象数组读取值

    我的 appsettings json 文件 StudentBirthdays Anne 01 11 2000 Peter 29 07 2001 Jane 15 10 2001 John Not Mentioned 我有一个单独的配置类 p
  • 关于 C++ 转换:参数 1 从“[some_class]”到“[some_class]&”没有已知的转换

    我正在研究 C 并且遇到了一个错误 我不知道确切的原因 我已经找到了解决方案 但仍然想知道原因 class Base public void something Base b int main Base b b something Base
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • 显示UnityWebRequest的进度

    我正在尝试使用下载 assetbundle统一网络请求 https docs unity3d com ScriptReference Networking UnityWebRequest GetAssetBundle html并显示进度 根
  • 使用 Bearer Token 访问 IdentityServer4 上受保护的 API

    我试图寻找此问题的解决方案 但尚未找到正确的搜索文本 我的问题是 如何配置我的 IdentityServer 以便它也可以接受 授权带有 BearerTokens 的 Api 请求 我已经配置并运行了 IdentityServer4 我还在
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在 C 中调用采用匿名结构的函数?

    如何在 C 中调用采用匿名结构的函数 比如这个函数 void func struct int x p printf i n p x 当提供原型的函数声明在范围内时 调用该函数的参数必须具有与原型中声明的类型兼容的类型 其中 兼容 具有标准定
  • 什么时候虚拟继承是一个好的设计? [复制]

    这个问题在这里已经有答案了 EDIT3 请务必在回答之前清楚地了解我要问的内容 有 EDIT2 和很多评论 有 或曾经 有很多答案清楚地表明了对问题的误解 我知道这也是我的错 对此感到抱歉 嗨 我查看了有关虚拟继承的问题 class B p
  • 覆盖子类中的字段或属性

    我有一个抽象基类 我想声明一个字段或属性 该字段或属性在从该父类继承的每个类中具有不同的值 我想在基类中定义它 以便我可以在基类方法中引用它 例如覆盖 ToString 来表示 此对象的类型为 property field 我有三种方法可以
  • 哪种 C 数据类型可以表示 40 位二进制数?

    我需要表示一个40位的二进制数 应该使用哪种 C 数据类型来处理这个问题 如果您使用的是 C99 或 C11 兼容编译器 则使用int least64 t以获得最大的兼容性 或者 如果您想要无符号类型 uint least64 t 这些都定
  • C++ 标准是否指定了编译器的 STL 实现细节?

    在写答案时this https stackoverflow com questions 30909296 can you put a pimpl class inside a vector我遇到了一个有趣的情况 这个问题演示了这样一种情况
  • 使用.NET技术录制屏幕视频[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有没有一种方法可以使用 NET 技术来录制屏幕 无论是桌面还是窗口 我的目标是免费的 我喜欢小型 低

随机推荐

  • MPI+CUDA 与纯 MPI 相比有何优势?

    加速应用程序的常用方法是使用 MPI 或更高级别的库 例如在幕后使用 MPI 的 PETSc 并行化应用程序 然而 现在每个人似乎都对使用 CUDA 来并行化他们的应用程序或使用 MPI 和 CUDA 的混合来解决更雄心勃勃 更大的问题感兴
  • 将原型 bean 自动装配到原型 bean 中?

    我正在使用一些现有的代码 它正在做我以前从未见过的事情 我已经使用方法注入将原型 bean 自动装配到单例中 或者使用 getBean 从上下文中获取 bean 我在这段代码中看到的是一个 bean 它是一个原型并使用 getBean 检索
  • 如何从 Survey Monkey 调查中获取受访者 ID?

    故事 我正处于为我公司正在制定的零售商激励计划创建视频教学引擎的初始阶段 其运作方式是零售商将注册并获得登录系统以访问内容的能力 登录后 零售商将观看有关我公司产品的短视频 然后他们将被要求回答有关该产品的 3 或 4 个问题 我们的想法是
  • PHP 将字符串解析为条件运算符

    我有一个表单 用户可以在其中创建自己的条件 例如
  • 绘制 matplotlib 图表以显示直方图箱中的总计数

    我正在尝试显示直方图 下面的数组是直方图每个单独箱的计数 binVals 0 5531608 6475325 1311915 223000 609638 291151 449434 1398731 2516755 3035532 29769
  • 如何制作轨道时间戳

    make 如何保留文件的时间戳 我正在尝试将我的 git 存储库部署到位 我正在为大多数不会改变的文件添加预编译的二进制文件 现在 当我从 git 签出存储库时 我不想编译这些 c 文件 我想使用这些预构建的二进制文件 因此 为了设置这个方
  • 如何在 MATLAB 中调整矩阵大小?

    假设我有一个1 by 12矩阵 我想将其调整为4 by 3矩阵 我怎么能这样做呢 我当前的解决方案有点丑陋 for n 1 length mat 3 out n 1 3 mat n 1 3 1 n 1 3 3 end 有一个更好的方法吗 r
  • JSF:使用 ajax 清除 inputTextArea 时出现奇怪的行为

    这是我所拥有的
  • 点击链接后如何导航回来?

    我对在 vba 中使用 IE 还很陌生 所以有时我很难纠正在编写从网络上抓取数据的代码时所犯的任何错误 我编写了一些代码来单击标题下 20 个链接中的每个视频链接Microsoft computer training videos可以在它的
  • 在硒自动化中,鼠标箭头移动是否可以用于测试用例

    我是硒的新手 我想知道如何向用户显示鼠标箭头移动 我的意思是说我们自动化某些事情 我想知道如何向用户显示鼠标箭头移动看到硒中正在进行的自动化 是否可以 我们能否清楚地显示正在单击的内容 我的意思是通过鼠标箭头移动单击了哪个按钮 我希望我很清
  • 更改为服务器端后如何获取标签文本?

    我试图在不回发时将标签的文本分配给隐藏字段 但失败了 这就是我所做的 If Not IsPostBack Then Dim structPayperiod As strcPayperiodDet structPayperiod objTim
  • 使用 ddply 进行汇总统计

    我喜欢使用编写一个函数ddply根据两列的名称输出汇总统计信息data frame mat mat是一个大data frame与列的名称 metric length species tree index index是具有 2 个水平的因子
  • 如何在 jQuery UI 中将多个可排序列表相互连接?

    我是 jQuery 新手 并且在使用 jQuery UI 时遇到了很大的困难sortable 我正在尝试整理一个页面以方便对项目进行分组和排序 我的页面有一个组列表 每个组都包含一个项目列表 我希望允许用户能够执行以下操作 重新排序组 对组
  • 在不知道键的情况下快速引用字典键和值

    我有一个字典数组定义为 var users String String 数组内的字典是一个简单的用户名 是 否标志 第一个用户 Y 第二个用户 N 第三个用户 N 在我的 TableView 单元格配置中 我定义了 let userReco
  • 浏览器和服务器在实践中是否使用 HTTP 内容协商?

    我正在学习关于HTTP内容协商 https developer mozilla org en US docs Web HTTP Content negotiation眼下 我已经了解客户端和服务器能够协商所请求内容的表示的基本方式 但我不知
  • 热点 JVM 字节码解释器是跟踪 JIT 吗?

    这个问题几乎说明了一切 我一直在寻找答案 甚至通过 VM 规范 但我没有明确说明 No 不过 还有一些其他 JVM 具有跟踪 JIT HotPath http HotPath GoogleCode Com and Maxine http L
  • 通过 jQuery tiny PubSub 传递数组

    jQuery 微型 PubSub https gist github com 661855在传递原始值或对象时非常有用 但在传递数组时会遇到一些问题 所以我必须将数组包装成一个对象 function var o subscribe func
  • JTable TableCellRenderer背景与Nimbus LookAndFeel颜色问题

    我正在使用 NimbusLookAndFeel 通过这种外观和感觉 JTable 的单元格背景可以是白色和浅灰色 这取决于行号 现在 我正在编写一些实现 TableCellRenderer 的自定义单元格渲染器 我需要根据 JTable 中
  • PHP 循环遍历表单值

    我有一个表单 提交了许多小字段 我需要循环遍历这些字段并对其执行操作 表格如下所示
  • 在 GoogleTest 中使用 ASSERT 和 EXPECT

    当 ASSERT 宏导致测试用例终止时 EXPECT 宏继续其评估 我想知道决定是否使用其中之一的标准是什么 Use ASSERT当条件must保持 如果没有 测试就在那里停止 当测试的其余部分在不满足此条件的情况下不具有语义意义时 请使用