Wings与c++test自动单元测试

Wings与c++ test

参考

Wings与c++ test都是用于生成单元测试驱动框架的工具。两者差异在于以下几点:

1.基本普通类型,wings与c++ test生成用例大致相同,wings采用随机生成一组或者多组数值,而c++ test依据临界值生成固定的随机数。

例如:c++ test:生成五组测试函数,每个测试函数分别取最大值,最小值,-1,0,1
Wings:从json中取值,json中的值先随机生成,也可以用户自己修改。

2.数组类型

数组作为函数参数使用时,分为固定长度和非固定长度。

固定长度的数组

Wings能够分析出数组的长度,通过获取固定数组的长度,进行拷贝赋值。

C++ test通过不关心数组的具体长度为多少,统一初始化为1、16、256的大小,进行赋值。

非固定长度的数组

Wings首先给不定长度的数组,分配一定的长度,用户可修改数组长度的大小wings将依据具体修改的数组长度进行赋值。

C++ test通过不关心数组的具体长度为多少,统一初始化为1、16、256的大小,进行赋值。

3.指针类型

Wings:json文件生成不定长度的数组,驱动运行的时候可以根据文件中用户设定的数组进行灵活的取值,二级指针也可以根据json中数组的长度进行灵活的赋值,三级指针暂时是取的二级指针的地址。

C++ test:一级指针是生成4种测试函数,前三种赋值长度分别为1,16,256的数组,最后一种指针赋值0;二级指针三级指针类似,取一级指针,二级指针的地址。

4.复杂类型(结构体类型)

Wings:对结构体的处理相对比较合理,首先针对复杂类型,wings首先进行展开分析,将复杂类型分解为最简单的基本类型,然后依次进行赋值操。

C++ test:对结构体的处理很简单,就是直接将结构体定义一下,然后就传进去了,结构体指针或者数组是取上一级的地址或者初始化0。

5.枚举类型

Wings:json中随机生成枚举类型里面对应的数值,然后驱动里面将该数值转化为枚举的值赋给函数参数。

C++ test:直接随机赋上枚举类型里面所有可能的情况。

6.联合体类型

Wings:对联合体的每一项都进行默认顺序赋值,用户可以根据需要实际选择赋值哪一个,联合体的值存在json中

C++ test:联合体赋值跟普通类型赋值一样,联合体里面的某一个变量赋值为最大,最小,-1,0,1这五种值,每种都测试一次

总结

              wing                c++test基本类型	        随机赋值	            最大值,最小值,-1,0,1数组类 固定长度	  依据具体长度赋值  	  全部按照1、16、256的长度进行赋值非固定长度	 依据需求动态赋值  	  全部按照1、16、256的长度进行赋值指针类型   基本类型	  动态获取长度,进行赋值	全部按照1、16、256的长度进行赋值复杂类型	  采用常规赋值方式      	全部按照1、16、256的长度进行赋值复杂类型	Wings首先将复杂类型分解为简单的基本类型,然后依次进行赋值	不做处理,直接赋值为空枚举类型        	随机赋值	            随机赋值联合体类型      	随机赋值	            联合体里面的某一个变量赋值为最大,最小,-1,0,1这五种值特殊类型	        利用模板方式,特殊进行赋值处理	不做处理

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/749419.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数字电子技术实验(四)

单选题 1.组合逻辑电路中产生竞争冒险的原因是? A. 电路没有最简化 。 B. 时延 。 C. 电路有多个输出。 D. 逻辑门的类型不同。 答案:B 评语:10分 单选题 2.下列表达式不存在竞争冒险的有? 答案:A 评语&#x…

深度强化学习(七)策略梯度

深度强化学习(七)策略梯度 策略学习的目的是通过求解一个优化问题,学出最优策略函数或它的近似函数(比如策略网络) 一.策略网络 假设动作空间是离散的,,比如 A { 左 , 右 , 上 } \cal A\{左,右,上\} A{左,右,上},策…

【零基础学习06】嵌入式linux驱动中PWM驱动基本实现

大家好,今天给大家分享一下,如何利用PWM外设来实现LCD背光调节,本次实验使用Linux系统中PWM控制器以及PWM子系统来控制对应的功能。 第一:设备树下PWM控制节点 PWM对应的节点信息如下: pwm3: pwm@02088000 {compatible = "fsl,imx6ul-pwm", "fsl,imx27-pwm…

Linux(ubuntu) 安装kotlin

Kotlin 是一种基于 Java 语言的静态类型编程语言,它可以运行于 JVM 上 1. 安装 Java Development Kit (JDK) Kotlin 运行于 JVM 上,所以首先需要安装 Java Development Kit(JDK) Ubuntu 或 Debian 系统 以ubuntu22.04为例 sudo…

操作系统系列学习——一个实际的schedule函数

文章目录 前言一个实际的schedule函数 前言 一个本硕双非的小菜鸡,备战24年秋招,计划学习操作系统并完成6.0S81,加油! 本文总结自B站【哈工大】操作系统 李治军(全32讲) 老师课程讲的非常好,感…

我打算修一段时间仙,望周知

1、大科学家牛顿也修过仙,虽然修的是西方的仙;我们东方人不信那个邪,有自己优秀的传统文化,我只修东方的仙;另外,作为普通凡人我成就和智慧都无法望牛顿老人家项背的普通人,即使现在暂时“修仙”…

设计模式--享元模式(Flyweight Pattern)

享元模式(Flyweight Pattern)是一种结构型设计模式,它的主要目的是用共享技术有效地支持大量细粒度的对象。 享元模式主要包含以下几个角色: Flyweight(抽象享元类):定义一个接口,…

【代码】求出指定图片的平均RGB颜色值

import cv2求出指定图片的平均颜色值# 读取图片 image cv2.imread(D:\\Desktop\\0001.png)# 计算平均颜色 # cv2.mean()函数会返回图像所有通道的平均值 # 这里的平均值是按通道分别计算的,返回值是一个包含每个通道平均值的元组 average_color_per_channel cv2.m…

Android笔记:监听侧边音量键

方法一:重写方法:方法二:BroadcastReceiver方法一:重写方法: @Overridepublic boolean onKeyDown (int keyCode, KeyEvent event) {// 获取手机当前音量值 // int i = getCurrentRingValue ();switch (keyCode

vue3之自定义指令

除了 Vue 内置的一系列指令 (比如 v-model 或 v-show) 之外&#xff0c;Vue 还允许你注册自定义的指令。自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。 写法 1. 没有使用 <script setup>的情况下 export default {setup() {/*...*/},directives: {// 在…

wenti

Installing NuttX dependencies 正在读取软件包列表... 正在分析软件包的依赖关系树... 正在读取状态信息... 没有可用的软件包 gcc-multilib&#xff0c;但是它被其它的软件包引用了。 这可能意味着这个缺失的软件包可能已被废弃&#xff0c; 或者只能在其他发布源中找到 E: …

国家开放大学 黑龙江开放大学 开学啦

标题&#xff1a;打开知识的大门——电大搜题助力黑龙江开放大学学子 作为一名资深学者&#xff0c;我有幸近日了解到了一款名为"电大搜题"的互联网应用&#xff0c;它为广播电视大学的学子们提供了便捷高效的学习工具。特别是对于就读于黑龙江开放大学的学生们来说&…

FFmpeg工作流程及视频文件分析

FFmpeg工作流程: 解封装(Demuxing)--->解码(Decoding)--->编码(Encoding)--->封装(Muxing) FFmpeg转码工作流程: 读取输入流--->音视频解封装--->解码音视频帧--->编码音视频帧--->音视频封装--->输出目标流 可简单理解为如下流程: 读文件-->解…

软件测试工程师简历要怎么写,才能让HR看到

作为软件测试的从业者&#xff0c;面试或者被面试都是常有的事。 可是不管怎样&#xff0c;和简历有着理不清的关系&#xff0c;面试官要通过简历了解面试者的基本信息、过往经历等。 面试者希望通过简历把自己最好的一面体现给面试官&#xff0c;所以在这场博弈中&#xff0…

特别数的和

题目 【问题描述】 小明对数位中含有 2、0、1、9 的数字很感兴趣&#xff08;不包括前导 0&#xff09; &#xff0c;在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40&#xff0c;共 28 个&#xff0c;他们的和是 574。 请问&#xff0c;在 1 到 n 中&#xff0c;所有…

MySQL和Redis如何保证数据一致性?

前言 由于缓存的高并发和高性能已经在各种项目中被广泛使用&#xff0c;在读取缓存这方面基本都是一致的&#xff0c;大概都是按照下图的流程进行操作&#xff1a; 但是在更新缓存方面&#xff0c;是更新完数据库再更新缓存还是直接删除缓存呢&#xff1f;又或者是先删除缓存再…

Oracle EBS R12 SLA子分类帐会计 核心标准表(Table)

目录 一、会计事务实体&#xff08;子帐与子模块的关系&#xff09; 二、会计事件 三、子帐头 四、子帐行 五、子帐关联 六、日记帐参考&#xff08;子帐与GL日记帐的关系&#xff09; 一、会计事务实体&#xff08;子帐与子模块的关系&#xff09; SELECT * FROM xla.xla_tra…

什么又是线程呢??

线程&#xff1a; 线程可以并发的执行&#xff0c;但是线程的地址是可以共享的 进程与线程的比较&#xff1a; 进程>线程 线程分三种&#xff1a; 用户线程 只有用户程序的库函数来 用户线程 因为操作系统感知不到 线程&#xff0c;如果有线程在运行&#xff0c;然后不交…

代码随想录算法训练营第四十八天|LeetCode121 买卖股票的最佳时机、LeetCode122 买卖股票的最佳时机II

121.买卖股票的最佳时机 思路&#xff1a;只能购买一次股票&#xff0c;确定dp数组及其下标含义dp[i][0]表示第i天持有股票的最大钱数&#xff0c;dp[i][1]表示第i天不持有股票的最大钱数&#xff0c;递推公式&#xff0c;第i天不持有股票的最大钱数有两种情况&#xff0c;1、…

如何使用Python进行数据可视化:Matplotlib和Seaborn指南【第123篇—Matplotlib和Seaborn指南】

如何使用Python进行数据可视化&#xff1a;Matplotlib和Seaborn指南 数据可视化是数据科学和分析中不可或缺的一部分&#xff0c;而Python中的Matplotlib和Seaborn库为用户提供了强大的工具来创建各种可视化图表。本文将介绍如何使用这两个库进行数据可视化&#xff0c;并提供…