本主题说明如何通过测试用例验证将测试用例转换为回归测试用例。
在本章节中:
生成不需要验证的回归测试
如果想为回归测试创建一个快照(例如,如果您确信代码的行为符合预期),请使用”单元测试> 生成回归基础" 内置的测试配置。
运行此测试配置时,C++test 将自动验证所有结果。
在后续测试中,如果 C++test 检测到初始测试中捕获的行为发生变化,它将报告任务。不需要验证。
关于验证
当 C++test 自动为行为符合预期的代码生成单元测试时,所生成的测试用例将形成一个功能快照:一套捕获代码当前行为的单元测试,该行为假定是正确的。该测试套件本质上是一个可执行规范。它可以用来建立一个基线,用来识别由新修改的代码引入的问题和变更。当您的目标是建立基线而不是验证应用程序的当前功能时,则无需查看这些测试用例的结果。此外,由于您希望保持此基准的完整性,因此您不需要为同一代码重新创建单元测试。随着应用程序的发展,您可以根据此基准测试新代码和修改后的代码,以确保所做的更改不会影响或“破坏”先前验证的功能。
您想要用于回归测试的任何测试用例都应该得到验证。当测试用例得到验证时,后置条件(捕获测试执行期间变量或类成员的实际值)将被转换为断言,这些断言将在所有后续测试中被检查。验证结果后,如果未达到相同的值,则相关测试将失败。
我们建议验证使用后置条件的用户定义的测试用例,以及您审阅过并认为对回归测试有用的自动生成的测试用例。当检查自动生成的测试用例时,扩展测试用例节点以显示后置条件详细信息是很有帮助的,后置条件详细信息是为被测对象的函数返回值和直接成员变量自动添加的。
验证测试用例
具有未验证结果的测试用例的自动验证
带有未验证结果(后置条件而不是断言)的测试用例可以自动验证。
要自动验证标记为未验证结果的一个或多个测试用例结果,请执行以下操作:
- 在【质量任务】视图中右键单击未验证的结果(或表示一组未验证结果的节点),然后选择快捷菜单中的 验证输出 。
所选上下文中的所有后置条件宏(无论是手动添加还是自动添加)都将转换为适当的断言。例如:
CPPTEST_POST_CONDITION_INTEGER("{int}_return=", _return) is converted to
CPPTEST_ASSERT_EQUAL(0, _return),
CPPTEST_POST_CONDITION_FLOAT("{float}_return=", _return) is converted to
CPPTEST_ASSERT_DOUBLES_EQUAL(1.000000e+000, _return, 0.00001),
CPPTEST_POST_CONDITION_PTR("{int *}_return=", _return) is converted to
CPPTEST_ASSERT(_return != 0).
手动验证
要手动验证测试用例:
- 在项目树中,找到 C++test 生成的测试套件文件。
- 默认情况下,自动生成的测试类保存在所测试项目的
tests/autogenerated
目录中。 - 要检查 C++test 在何处保存测试套件文件,请打开【测试配置】对话框,选择用于生成测试的测试运行的【测试配置】,然后查看 生成> 测试套件 选项卡的 测试套件输出文件和布局 字段(有关详细信息请查阅 测试套件选项卡 )。
- 默认情况下,自动生成的测试类保存在所测试项目的
- 双击表示生成的测试类的项目树节点。生成的测试类文件将在编辑器中打开。
- 使用可用的宏将后置条件转换为断言。
- 有关宏列表的详细信息,请查阅 C++test API 文档 。
- 进行所需的任何其他修改。
- 保存修改后的文件。