本主题说明如何通过测试用例验证将测试用例转换为回归测试用例。
在本章节中:
如果想为回归测试创建一个快照(例如,如果您确信代码的行为符合预期),请使用”单元测试> 生成回归基础" 内置的测试配置。 运行此测试配置时,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).
要手动验证测试用例:
tests/autogenerated
目录中。