【UT学习记录】

news2024/11/28 5:56:19

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
Part1:Mock
Part2:PowerMock
Part3:Junit


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 一、Junit
    • 1. 参数化测试
    • 2. 测试套件Suite

一、Junit


一、Junit

JUnit是一个开源的java单元测试框架。在1997年,由 Erich Gamma 和 Kent Beck 开发完成。用于编写和运行可重复的测试,是单元测试框架体系xUnit的一个实例(用于java语言)。它包括如下特性:
① 用于测试期望结果的断言(Assertion)
② 用于共享共同测试数据的测试工具
③ 用于方便的组织和运行测试的测试套件
④ 图形和文本的测试运行器

Junit 可以完成关联依赖较少、比较简单的类的单元测试。关联到其他较为复杂的类等模拟环境比较复杂,可以用Jmock 模拟对象。Jmock后面再学

1. 参数化测试

参数化测试允许开发者使用不同的值反复进行相同的测试

步骤:

  1. 创建测试类和测试方法
  2. 测试类加注解 @RunWith(Parameterized.class)
  3. 测试类方法新加参数
  4. 测试类新加带参数的构造方法
  5. @Parameterized.Parameters + 方法定义数组
  6. 测试方法调用,传入input值 和目标结果对比
package com.zy.learnPowerMockito.common;

import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.*;

@RunWith(Parameterized.class)
public class MyMathTest {
    int except;
    int input1;
    int input2;

    @Parameterized.Parameters
    public static Collection<Object[]> initDatas() {
        return Arrays.asList(new Object[][]{{
                3, 1, 2
        }, {
                4, 2, 2
        }, {
                5, 1, 4

        }});
    }

    public MyMathTest(int except, int input1, int input2) {
        this.except = except;
        this.input1 = input1;
        this.input2 = input2;
    }

    @Test
    public void add() {
        MyMath myMath =new MyMath();
        int actNum = myMath.add(input1,input2);

        Assert.assertEquals(except, actNum);
    }
}

在这里插入图片描述

2. 测试套件Suite

–批量运行多个测试类

注解:
@RunWith(Suite.class)
@Suite.SuiteClasses({Class1.class,Class2.class})

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

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

相关文章

Linux进程信号(二)

信号保存与捕捉 1.相关概念2.信号在内核中的示意图3.信号集4.信号集操作函数5.内核态与用户态6.信号捕捉7.sigaction8.可重入函数8.volatile9.SIGCHLD信号 &#x1f31f;&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f;&#x1f31f; &#x1f680;&#…

hbuilderX自定义主题仿vscode暗黑主题

目录 hbuilderX自定义主题仿vscode暗黑主题 效果图 设置方式&#xff08;把主题代码复制进来即可&#xff09; 是基于雅蓝主题自定义的 设置好后需要切换到雅蓝主题 hbuilderx保存时自动整理代码 1.首先在顶部栏&#xff0c;找到工具&#xff0c;打开设置 2.点击旁边的编…

uniapp做微信小程序,自定义checkbox和radio的样式

用uniapp做个微信小程序&#xff0c;其中有用到自定义checkbox和radio的样式&#xff1b;代码记录如下&#xff1a; 自定义checkbox 在App.vue中写入样式&#xff1a; checkbox.red .wx-checkbox-input,checkbox.red .uni-checkbox-input {background-image: url(/static/ima…

MySQL锁定:死锁及其避免方法

文章目录 一、MySQL锁定和并发控制的重要性二、MySQL锁机制回顾2.1 锁类型&#xff1a;共享锁和排他锁2.2 锁粒度&#xff1a;行级锁和表级锁 三、死锁的原因和场景四、检测和解决死锁4.1 死锁检测算法4.2 死锁处理策略4.3 手动处理死锁 五、死锁的预防和避免分布式环境下&…

驱动程序设计 利用RTC显示年月日时分秒到终端 7.11

驱动控制RTC 用户需求&#xff1a;写一个RTC时钟控制的驱动&#xff0c;实现RTC显示年月日时分秒到用户端 驱动需求&#xff1a;设备&#xff1a;RTC模块 功能&#xff1a;打印显示 寄存器操作&#xff1a; 原理图&#xff1a; 设备–>pin–>设备控制芯片 ​ 驱动需求 …

信号波形时序图常用工具推荐

Refer: 下载&#xff1a;画时序图的四大神器_可编程器件-面包板社区 (eet-china.com) 软件工程师&#xff0c;习惯使用StarUML画Timing Diagram, 硬件工程师建议使用一下软件。 1、AndyTiming 免费的&#xff0c;这个有一个知乎的博文可以参考 https://zhuanlan.zhihu.com/p…

Android 中利用多个Button组合实现选项切换效果

效果图&#xff1a; xml布局: <LinearLayoutandroid:orientation"horizontal"android:layout_width"match_parent"android:layout_height"50dp"android:gravity"center"android:background"color/White">​<Linear…

SpringCloud Alibaba微服务分布式架构组件演变

文章目录 1、SpringCloud版本对应1.1 技术选型依据1.2 cloud组件演变&#xff1a; 2、Eureka2.1 Eureka Server &#xff1a; 提供服务注册服务2.2 EurekaClient &#xff1a; 通过注册中心进行访问2.3 Eureka自我保护 3、Eureka、Zookeeper、Consul三个注册中心的异同点3.1 CP…

Mysql:常见的面试题和答案

1. 数据库事务的特性&#xff1f; 原子性&#xff1a;即不可分割性&#xff0c;事务要么全部被执行&#xff0c;要么就全部不被执行。一致性或可串性。事务的执行使得数据库从一种正确状态转换成另一种正确状态隔离性。在事务正确提交之前&#xff0c;不允许把该事务对数据的任…

华为数通智选交换机S5735S-L24T4S-QA2无法SSH远程访问

以前都是按照华为S5700交换机开启SSH远程访问方法配置不同网段通过静态路由实现互通,华为S5700交换机开启ssh远程登陆,现在新买的华为数通智选交换机S5735S-L24T4S-QA2,也是按照这步骤配置,令人不解的是,竟然无法ssh访问,仔细看了配置也没有发现问题,在华为eNSP模拟器上验…

FreeSwitch 1.10.9 在CentOS7.9编译spandsp版本匹配问题

最近FreeSwitch 1.10.9 在CentOS7.9编译mod_spandsp出问题, making all mod_spandsp make[4]: Entering directory /usr/local/src/freeswitch-1.10.9.-release/src/mod/applications/mod_spandspCC mod_spandsp_la-mod_spandsp.loCC mod_spandsp_la-udptl.loCC …

HTTP以及Servlet的学习

HTTP和Servlet 联系&#xff1a; HTTP是一个通信协议&#xff0c;而Servlet是服务器端程序&#xff0c;用于处理HTTP请求。Servlet通常用于处理HTTP请求&#xff0c;在服务器上生成动态内容&#xff0c;并生成HTTP响应。HTTP协议就是Servlet处理的基础。 区别&#xff1a; …

【MySQL】如何查询MySQL执行过的所有SQL语句

文章目录 1 MySQL 的通常查询日志实验2 参考资料 1 MySQL 的通常查询日志实验 通过 MySQL 的通用查询日志可以找到你指定的每一条 sql 语句。很明显会有严重的性能损耗所以也只会在开发测试时才会使用。 前言&#xff1a;关于本实验与慢日志实验几乎一模一样&#xff0c;故本文…

05-算法部分 (数据结构和算法)

一 排序算法 1.1 冒泡法排序 冒泡排序&#xff08;Bubble Sort&#xff09;是一种简单直观的排序算法。它重复地走访过要排序的数列&#xff0c;一次比较两个元素&#xff0c;如果他们的顺序错误就把他们交换过来。 首先从数组的第一个元素开始到数组最后一个元素为止&#x…

串行FLASH文件系统FatFs-文件系统介绍

目录 串行FLASH文件系统FatFs-文件系统介绍 文件系统介绍 使用SPI FLASH直接存储数据缺点 Windows上的文件系统 磁盘的物理结构 磁盘分区表 文件系统的结构与特性 文件系统的空间示意图 FATFS文件系统 FATFS文件系统简介 1 . 特征 2. 层级结构 FatFs的目录结构 FatF…

文件操作--文件的随机读写、标准输入输出重定向

目录 一、文件的随机读写 二、便准输入输出重定向 一、文件的随机读写 前面的例程执行的都是顺序文件处理&#xff08;Sequential File Processing&#xff09;。在顺序文件处理过程中&#xff0c;数据项是一个接着一个进行读取或者写入的。例如&#xff0c;如果想读取文件中…

HarmonyOS学习路之开发篇—流转(多端协同 一)

多端协同开发 场景介绍 开发者在应用FA中通过调用流转任务管理服务、分布式任务调度的接口&#xff0c;实现多端协同。 主要流程如下&#xff1a; 设备A上的应用FA向流转任务管理服务注册一个流转回调。 Alt1-系统推荐流转&#xff1a;系统感知周边有可用设备后&#xff0c;主…

Leangoo领歌敏捷管理工具标签升级,企业级标签组上线

在Leangoo领歌敏捷工具中&#xff0c;标签通常用作对任务的分类&#xff0c;或任务的优先级区分等。这次我们发布了大家期待已久的“企业级标签组”功能&#xff0c;标签可以统一管理啦&#xff5e; 之前&#xff0c;Leangoo领歌的标签功能只限于单个看板使用&#xff0c;需要…

视频孪生赋能智慧交通综合管理系统的数智化升级

交通是重大民生工程,涉及公共安全和人民群众切身利益,必须树牢安全发展理念,强化企业主体责任落实。根据国家标准《城市轨道交通公共安全防范系统工程技术规范》中要求&#xff1a; 未来的智慧交通系统要建立在安防集成平台的应用上&#xff0c;对各类重要部位进行视频图像与三…

CUDA编程实战(使用Sobel算子对rgb图片进行边缘检测)

写在前面&#xff0c;本篇文章为一个CUDA实例&#xff0c;使用GPU并行计算对程序进行加速。如果不需要看环境如何配置&#xff0c;可以直接到看代码部分:点击直达 关于如何更改代码和理解代码写在这个地方:点击直达 运行环境&#xff1a; 系统:windows10专业版 显卡:NVIDIA …