Wer*_*ght 29 c++ testing googletest
我看到该功能的文档似乎非常重要,因为它在Google测试概述功能中并详细介绍:https:
//github.com/google/googletest/blob/master/googletest/docs/advanced.md#death-tests
它们看起来像标准,assert()但它们是Google Test的一部分,因此是一个xUnit测试框架.因此,我想知道使用这些死亡测试的真正用途或优点是什么.
Mic*_*yan 23
断言是为了确认一个函数在当前进程中执行时会导致程序终止(详细说明死亡测试是从子进程调用的,它允许测试在死亡的情况下继续).这很有用,因为有些代码可以保证程序在失败时终止/中止(例如,如果存在不可恢复的错误),并且单元测试应该确认函数是否遵循其记录的行为,而不管可能是什么.
维基页面上的描述确实解释得最好:
在许多应用程序中,如果不满足条件,则存在可能导致应用程序失败的断言.这些健全性检查确保程序处于已知良好状态,在某些程序状态损坏后尽早失效.如果断言检查错误的条件,则程序可能以错误状态进行,这可能导致内存损坏,安全漏洞或更糟.因此,测试这样的断言语句是否按预期工作是至关重要的.