gtest中如何跳出当前测试案例

简介:
+关注继续查看
在前面的玩转gtest - 断言中, 我们提到了ASSERT_*系列的断言只是在当前函数返回,并非退出当前测试案例,因为ASSERT_*系列是通过return来实现的(因此 ASSERT_*系列不能在返回值不为void的函数内出现)。要退出当前测试案例,一个最简单的方法就是通过抛异常,然后让gtest捕获这一异常。示例如下:

复制代码
void Func(int a, int b)
{
    
throw "b==0";
    EXPECT_EQ(
0, a\b);
    printf(
"End of Func");
}

TEST(FooTest, Demo1)
{
    Func(
50);
    printf(
"End Call Func(5, 0)");
}

int _tmain(int argc, _TCHAR* argv[])
{
    testing::GTEST_FLAG(catch_exceptions) 
= 1;
    testing::InitGoogleTest(
&argc, argv);
    
return RUN_ALL_TESTS();
}
复制代码


(上面的两个printf函数都不会执行。)

要退出当前测试案例,你只需要两步:
1.设置catch_exception标志,在main函数或是在你的测试案例前都可以。
2.要跳出测试案例时,只需要通过throw抛出任意异常即可。

为何通过这种方法可以跳出当前测试案例,请参考玩转gtest - 深入解析gtest

需要注意的是:假如使用的是TEST_F宏,跳出当前测试案例后,会执行TearDown(),因此不必当心TearDown中释放资源的操作不会执行。

我认为一个好的测试案例,应该是在你的测试函数中,比如TEST宏内,清晰的表达出你要测试的对象,以及预期的测试结果。因此,通常情况下,EXPECT_*和 ASSERT_*应该尽量在测试函数中出现,而不是在测试函数内调用的另外函数或是里面很多层的函数内才出现。(比如上面的Func函数中的 EXPECT_EQ)。

 

 

本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2009/08/02/1536901.html,如需转载请自行联系原作者

相关文章
|
17天前
|
Java 应用服务中间件 nginx
DockerFile详解以及测试案例
DockerFile详解以及测试案例
22 0
|
2月前
|
SQL 安全 测试技术
软件测试实验七 Web应用测试参考案例
软件测试实验七 Web应用测试参考案例
32 0
|
2月前
|
测试技术 Shell
软件测试实验六 移动App测试参考案例
软件测试实验六 移动App测试参考案例
24 0
|
4月前
|
JSON 数据安全/隐私保护 数据格式
python fastapi 入门教程,每个案例都使用postman进行测试写的接口
python fastapi 入门教程,每个案例都使用postman进行测试写的接口
|
4月前
|
运维 监控 安全
《阿里云云原生 Serverless 案例集》——典型案例——医疗健康-谱尼测试
《阿里云云原生 Serverless 案例集》——典型案例——医疗健康-谱尼测试
79 0
|
4月前
|
运维 监控 安全
《2023云原生实战案例集》——06 医疗健康——谱尼测试 基于SAE实现业务快速上线并从容应对流量洪峰
《2023云原生实战案例集》——06 医疗健康——谱尼测试 基于SAE实现业务快速上线并从容应对流量洪峰
|
5月前
|
机器学习/深度学习 人工智能 监控
《花雕学AI》23:中文调教ChatGPT的秘诀:体验测试与通用案例,解锁无限有趣玩法!
ChatGPT是一个基于深度学习的中文对话生成系统,它可以根据用户的输入,生成流畅、自然、有趣的对话回复。ChatGPT不仅可以进行各种主题和风格的闲聊,还可以进行各种类型和形式的创作、学习、娱乐和社交。ChatGPT具有强大的逻辑推理和创造性思维能力,可以应对各种复杂和有趣的情境和挑战。 但是,要充分发挥ChatGPT的潜力和魅力,你需要了解如何调教它,让它更符合你的期望和需求。在本文中,我将为你揭示中文调教ChatGPT的秘诀,通过体验测试和通用案例,让你解锁无限有趣玩法,享受与ChatGPT的对话乐趣。请跟随我,一起探索ChatGPT的奇妙世界吧!
378 0
|
5月前
|
机器学习/深度学习 人工智能 自然语言处理
《花雕学AI》19:比较ChatGPT与新Bing在文章润色方面的应用优势与测试案例
文章润色是指对已经写好的文章进行修改、优化或完善的过程,以提高文章的质量和效果。文章润色涉及到多方面的内容,如语言表达、逻辑结构、文献引用、格式规范等。文章润色对于提升写作水平、提高论文发表率、增加学术影响力等都有重要意义。然而,文章润色也是一项耗时耗力的工作,需要作者具备较高的语言能力、专业知识和审美判断。因此,如何利用现代科技手段来辅助文章润色,提高润色效率和质量,是一个值得探讨的问题。本文将从以下几个方面进行分析和比较:(1)分析ChatGPT的应用优势和测试案例;(2)分析新Bing的应用优势和测试案例;(3)比较ChatGPT和新Bing在文章润色方面的异同点和优缺点。
395 0
《花雕学AI》19:比较ChatGPT与新Bing在文章润色方面的应用优势与测试案例
|
6月前
|
前端开发
前端学习案例19-加入元素的测试
前端学习案例19-加入元素的测试
35 0
前端学习案例19-加入元素的测试
|
6月前
jira学习案例132-继承测试测试项目列表2
jira学习案例132-继承测试测试项目列表2
33 0
jira学习案例132-继承测试测试项目列表2
推荐文章
更多