玩转Google单元测试框架gtest系列之五:死亡测试

发表于:2010-4-06 15:19

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:CoderZh    来源:www.cnblogs.com/coderzh

分享:

  你可以在 main() 里为所有的死亡测试设置测试形式,也可以为某次测试单独设置。Google Test会在每次测试之前保存这个标记并在测试完成后恢复,所以你不需要去管这部分工作 。如:

TEST(MyDeathTest, TestOne) {
  testing::FLAGS_gtest_death_test_style 
= "threadsafe";
  
// This test is run in the "threadsafe" style:
  ASSERT_DEATH(ThisShouldDie(), "");
}

TEST(MyDeathTest, TestTwo) {
  
// This test is run in the "fast" style:
  ASSERT_DEATH(ThisShouldDie(), "");
}

int main(int argc, char** argv) {
  testing::InitGoogleTest(
&argc, argv);
  testing::FLAGS_gtest_death_test_style 
= "fast";
  
return RUN_ALL_TESTS();
}

  八、注意事项

  1. 不要在死亡测试里释放内存。

  2. 在父进程里再次释放内存。

  3. 不要在程序中使用内存堆检查。

  九、总结

  关于死亡测试,gtest官方的文档已经很详细了,同时在源码中也有大量的示例。如想了解更多的请参考官方的文档,或是直接看gtest源码。

  简单来说,通过*_DEATH(statement, regex`)和*_EXIT(statement, predicate, regex`),我们可以非常方便的编写导致崩溃的测试案例,并且在不影响其他案例执行的情况下,对崩溃案例的结果进行检查。


相关链接:

玩转Google单元测试框架gtest系列之四:参数化

玩转Google单元测试框架gtest系列之三:事件机制

玩转Google单元测试框架gtest系列之二:断言

玩转Google单元测试框架gtest系列之一:初识gtest

44/4<1234
2023测试行业从业人员调查问卷已开启,千元大奖正在等你~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2023
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号