单元测试结果分析
对于单元测试的结果,在C++test窗口中,显示出来,分为两类(两个目录),即 fix unit test problems 和 review unit test outcomes。前者列出明确的单元测试问题,后者列出需要复审的测试结果。
1.一个Fix Unit Test Problems(修正单元测试问题) >Assertion Failures(断言失败)信息,表示测试用例不能产生正确的结果。
• 如果代码错误,请校正代码
• 如果故障是有目的的,请改变测试用例的注册,使用如第289 页上的“注册宏指令”中所描述的CPPTEST_TEST_ERROR。
2.Fix Unit Test Problems(修正单元测试问题)>Runtime Exceptions(运行时异常)信息,表示测试用例引起一个意想不到的异常情况(就是测试用例代码中未说明的和未处理的异常)。
• 确定异常是否表示正在测试的代码有错误,或者是由正在调用测试代码的测试装置引起的
• 如果异常情况是由正在测试的代码故障引起的,请校正此代码。
• 如果异常情况是有目的的,请改变测试用例注册表,使用在第289 页上的“注册表宏指令”中所描述的CPPTEST_TEST_EXCEPTION。
• 通常,异常情况不是由正在测试的代码本身引起的(是异常得以显示的地方),而是由调用代码的指令引起的。调用处于测试中的代码的应用程序代码应被复审,以确保应用程序不会产生由测试装置所暴露的异常情况。
3.Fix Unit Test Problems> Assertion Failures> Timeout(修正单元测试问题>声明失败> 超时设定)的信息表示C++test 设法测试一个类时,超时。(如果是,测试代码执行本身比较慢的话,就修改测试配置中的execution->runtime。)
4.(Review Unit Test Outcomes> Unverified Outcomes category(复审单元测试结果>未核对的结果类型)信息),当C++test 执行自动生成的或者用户定义的带有后置条件的测试用例时,这些后置条件尚未转换为申明。结果可能是预期的行为,或者可能表示有问题,需要进一步的复审和检验。
关于测试用例和注册宏指令
在测试套件声明中,每一个测试用例被一个宏格式CPPTEST_TEST* 注册。
CPPTEST_TEST (测试用例名): 默认测试用例注册表
CPPTEST_TEST_ERROR
CPPTEST_TEST_EXCEPTION
CPPTEST_TEST_FAIL(测试用例名)