C/C++单元测试工具Visual Unit 4在线帮助


导出JSON格式的用例数据

概述
    此功能将用例数据导出为JSON文件,可用于生成其他风格的测试代码。

导出
    VU“工程”菜单,选择“导出JSON格式的用例数据”,弹出“导出JSON格式的用例数据”窗口,选择保存路径,点击“开始导出”, 如下图。
    导出完成后,点击“打开所在位置”,即可打开JSON文件所在的文件夹。
   

文件结构与文件编码格式
    文件目录结构与被测文件一致。每个被测源文件对应一个文件夹,存放该文件下的函数所对应的JSON文件。一个数据表,生成一个JSON文件,文件名就是函数名(C++工程则在文件名中增加用于区分重载函数的参数识别串)。如果一个函数有多个数据表,则从第二个表开始,JSON文件名增加了数据表编号,如test201(2).json。如下图。多个数据表时,同一变量可能设为不同数据类型,这是各自生成一个JSON文件的原因。
    文件编码格式与VU“工程属性”》“常规”》“代码文件编码格式”中的设置一致,即被测文件为utf8时,生成的JSON文件也是utf8,否则为ansi。如果打开JSON文件后,中文显示为乱码,须自行用文件编码格式转换工具进行转换。

   

JSON文件内容说明
    头部信息,如下图,其中,"description"项,保存用例说明,拷贝自数据表中的case desc,每个用例一行,与后续的"values"对应。

   

    文件的主体是用例数据,忽略了表格中无值的变量。用例数据分类对应表如下:

   

    下图是数据表格与JSON对比。由于数据表格可以修改变量类型,如void*改为int[10],JSON用"type_old"项保存原来的类型,"type"项保存修改后的类型。

   

    下图为复合类型的JSON表示, 其中,"sub_type"项保存下级类型。为了避免复杂数据类型生成大量冗余信息, 数据表中所有用例都未设值的成员将被忽略,下图中,变量pUnuse及b均未使用,JSON将忽略。

   

    底层输入的对应JSON,如下图,"function",保存调用的底层函数,"targets"及下级各项"target",保存调用底层函数后,所生成的数据标的,"target"包括:
    "return": 底层函数的返回值。
    "parameter N": 底层函数的出参,N为参数的序号。
    "global":底层函数产生的、保存在全局变量中的数据。
    "member":底层函数产生的、保存在成员变量中的数据(C++)。
    "call_times":调用次数。
    "skip_it":不产生数据直接跳过。此项数据比较特殊,只有"in"的值为"-1"时,才是无效的,"in","out"都为空或其他值时,则是生效的。