单元测试方法

2023-11-19

目录

一、单元测试概述

目录

一、单元测试概述

1.单元测试是什么呢?

2.我们目前测试方法是怎么进行的,存在什么问题?

3、Junit单元测试框架

4.JUnit优点

二、单元测试实现步骤

1.需求:使用单元测试进行业务方法预期结果、正确性测试的快速入门。

2.分析:

3.代码演示:

 4.结果展示:

三、单元测试常用注解

1、Junit常用注解(Junit 4.xxxx版本)

2、Junit常用注解(Junit 5.xxxx版本)

3、实现过程

一、单元测试概述

1.单元测试是什么呢?

答:单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是方法,因此,单元测试就是针对Java方法的测试,进而检查方法的正确性。

2.我们目前测试方法是怎么进行的,存在什么问题?

a.只有一个main方法,如果一个方法的测试失败了,其他方法测试会受到影响。

b.无法得到测试的结果报告,需要程序员自己去观察测试是否成功。

c.无法实现自动化测试。

3、Junit单元测试框架

a.JUnit是使用Java语言实现的单元测试框架,它是开源的,Java开发者都应当学习并使用JUnit编写单元测试。

b.此外,几乎所有的IDE工具都集成了JUnit,这样我们就可以直接在IDE中编写并运行JUnit测试,JUnit目前最新版本是5。

4.JUnit优点

a.JUnit可以灵活的选择执行哪些测试方法,可以一键执行全部测试方法。  

b.Junit可以生成全部方法的测试报告。  

c.单元测试中的某个方法测试失败了,不会影响其他测试方法的测试。

二、单元测试实现步骤

1.需求:使用单元测试进行业务方法预期结果、正确性测试的快速入门。

2.分析:

a.将JUnit的jar包导入到项目中

                        IDEA通常整合好了Junit框架,一般不需要导入。

                        如果IDEA没有整合好,需要自己手工导入如下2个JUnit的jar包到模块

                        

b.编写测试方法:该测试方法必须是公共的无参数无返回值的非静态方法。

c.在测试方法上使用@Test注解:标注该方法是一个测试方法

d.在测试方法中完成被测试方法的预期正确性测试。

e.选中测试方法,选择“JUnit运行” ,如果测试良好则是绿色;如果测试失败,则是红色

3.代码演示:

a.主程序:

@Test
    public void testSelectNames() {
        UserService userService = new UserService();
        userService.selectNames();
    }

b.实现类:

public void selectNames(){
        System.out.println(10/2);
        System.out.println("查询全部用户名称成功~~");
    }

 4.结果展示:

三、单元测试常用注解

1、Junit常用注解(Junit 4.xxxx版本)

注解

说明

@Test 

测试方法

@Before

用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。

@After

用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。

@BeforeClass

用来静态修饰方法,该方法会在所有测试方法之前只执行一次。

@AfterClass

用来静态修饰方法,该方法会在所有测试方法之后只执行一次。

2、Junit常用注解(Junit 5.xxxx版本)

注解

说明

@Test 

测试方法

@BeforeEach

用来修饰实例方法,该方法会在每一个测试方法执行之前执行一次。

@AfterEach

用来修饰实例方法,该方法会在每一个测试方法执行之后执行一次。

@BeforeAll

用来静态修饰方法,该方法会在所有测试方法之前只执行一次。

@AfterAll

用来静态修饰方法,该方法会在所有测试方法之后只执行一次。

3、实现过程

a.开始执行的方法:初始化资源。

b.执行完之后的方法:释放资源。 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

单元测试方法 的相关文章

  • 使用 objectGUID 进行查询 - Spring LDAP 模板

    我正在尝试获取 存储并依次使用 objectGUID 来查询 Active Directory 为了获取用户属性我正在使用以下 public static class MyDnKeyValueAttMapper implements Att
  • 不同的 JDK 更新会产生不同的 Java 字节码吗?

    假设场景 我有一个项目 其源合规性级别指定为 1 5 现在 我使用两种不同的 JDK 编译此项目 首先使用 JDK 6 Update 7 然后使用 JDK 6 Update 20 这两个不同的 JDK 是否会生成不同的 Java 字节代码
  • 使用 Spring MVC 返回 PDF 文件

    实际上 我有这个功能 我有一个框架 可以在其中设置 URL ip port birt preview report report rptdesign format pdf parameters 并且该框架呈现 PDF 文件 但我想隐藏该网址
  • 在 Java 中填充布尔数组

    作为一名相当新手的 Java 程序员 我给自己设定了一个艰巨的挑战 尝试编写一个简单的文本冒险 不出所料 我已经遇到了困难 我试图为我的 Location 类提供一个属性来存储它包含的退出 我为此使用了一个布尔数组 本质上保存代表每个出口的
  • DateTimeFormatter.parseLocalDate 抛出 UnsupportedOperationException

    该API用于解析本地日期 http joda time sourceforge net apidocs org joda time format DateTimeFormatter html parseLocalDate 28java la
  • Spring 术语中命令、表单、业务和实体对象之间的区别?

    我试图理解这些对象在松散耦合系统方面的差异 业务对象与实体对象相同吗 我可以使用 MVC 中的业务或实体对象作为我的命令对象吗 命令对象与表单对象相同吗 只是寻找 Spring 术语和用法中对象类型的说明 我在 stackoverflow
  • 在java.util中获取错误ArrayList不带参数[重复]

    这个问题在这里已经有答案了 我已经创建了一个类 Student 现在我尝试将我的 Student 对象存储在 ArrayList 中 但在编译 ArrayList 不接受参数时出现错误 我已经检查了我的代码很多次 但找不到问题所在 我的学生
  • Ant 无法启动,给出主类错误

    我正在运行 Elementary OS 基于 Ubuntu 12 并且在运行 apache ant 时遇到问题 它在重新启动之前就可以正常工作 所以我不确定会发生什么变化 我在 etc environment 中定义了环境变量 如下所示 P
  • 将多个视频文件合并到一个文件中

    我有多个以相同帧速率和分辨率录制的视频 我想将两个视频合并为一个视频 因此结果文件将是大视频 我正在使用 MP4 解析器 api 并使用下面的代码 Movie countVideo new MovieCreator build Channe
  • 给定一个单词列表 - 在 java 中完成单词的好的算法是什么?权衡:速度/效率/内存占用

    我正在探索潜在的免费 付费应用程序的硬件 软件要求 最终目标是移动 Java 应用程序 该应用程序将从这个简单的目标开始 给定数据库中相关单词的列表 能够对单个字符串输入进行单词补全 换句话说 我已经知道数据库的内容 但算法的内存占用 速度
  • java.lang.UnsupportedOperationException:无法解析索引 13 处的属性:TypedValue{t=0x2/d=0x7f010046 a=-1}

    我在 android attrs xml 文件中添加了一个用于不同色调的属性 在 styles xml 文件中 我为这些属性指定了颜色 因此每种样式的它们都不同 Attrs xml
  • java.lang.IllegalArgumentException:addChild:子名称“/”不唯一

    java lang IllegalArgumentException addChild 子名称 不唯一 通过在 tomcat webapps 文件夹中启用和禁用 saml 单点登录来替换现有 war 文件时遇到此问题 我正在使用 apach
  • Java中无参数的for循环

    我在看别人的代码 发现了这段代码 for 我不是 Java 专家 这行代码在做什么 起初 我认为这会创建一个无限循环 但在该程序员使用的同一个类中 while true 其中 如果我错了 请纠正我 是一个无限循环 这两个相同吗 为什么有人会
  • 使用 Java 通过 HTTP 下载未知长度的文件

    我想用java下载一个HTTP查询 但是我下载的文件在下载时有一个未确定的长度 我认为这将是相当标准的 所以我搜索并找到了它的代码片段 http snipplr com view 33805 http snipplr com view 33
  • 处理照片上传的最佳方式是什么?

    我正在为一个家庭成员的婚礼制作一个网站 他们要求的一个功能是一个照片部分 所有客人都可以在婚礼结束后前往并上传他们的照片 我说这是一个很棒的想法 然后我就去实现它 那么只有一个问题 物流 上传速度很慢 现代相机拍摄的照片很大 2 5 兆 我
  • Storm Spout 未收到 Ack

    我已经开始使用storm 所以我使用创建简单的拓扑本教程 https github com nathanmarz storm wiki Tutorial 当我运行我的拓扑时LocalCluster一切看起来都很好 我的问题是我没有得到元组的
  • 如何告诉 IntelliJ 使用 Java 1.6 JDK 启动 gradle?

    一个简单的问题 即使经过几个小时的尝试和搜索 我也无法弄清楚 我安装了 Java 6 和 7 如何告诉 IntelliJ 使用 JDK 版本 1 6 启动 Gradle 构建 无论我做什么 IntelliJ 都会以以下方式开始我的 grad
  • Checkstyle - 方法按修饰符排序

    是否可以添加到 checkstyle 规则以按修饰符对类中的方法进行排序 我的意思是开头的公共方法和最后的私有方法 MethodsOrderCheck做这个工作 检查文档 https www qulice com qulice checks
  • JSP 和 scriptlet

    我知道现在使用 scriptlet 被认为是禁忌 没关系 我会同意Top Star的话 因为我目前只是Java新手 到目前为止我听到的是 它是为了让设计师的生活更轻松 但我想知道 这是否与JSP页面的性能有关 另一方面 如果只是为了 让设计
  • 升级到 Tomcat 8 时出现 ClassNotFoundException

    我最近将 NetBeans IDE 从 v7 3 升级到 v8 突然我的应用程序在连接到数据库时在服务器启动时抛出异常 这两个版本的 IDE 之间的唯一区别是后者使用 Tomcat 8 异常日志 javax naming NamingExc

随机推荐

  • 嵌入式杂谈之中断向量表

    虽说接触了好久的单片机或者说嵌入式开发 不过对于有些概念还是比较模糊 因此此系列将会从一些零碎的小知识点出发 慢慢的遍历整张嵌入式开发的地图 这次先来看一下中断向量表 至于为什么会提到中断向量表 主要是因为我自己在学习嵌入式Linux开发的
  • 基于51单片机的8x8x8LED光立方设计

    1 简介 本设计是以STC89C52单片机的8x8x8的LED光立方 本设计将LED光立方分成8层 分别由单片机的P1 8个IO口来控制每一层 由于采用的是共阴极所以当层电位为高电平有效 由P0口和P2的总共16个IO口来控制每层的64盏灯
  • 对视频剪辑应用灰度图像变换+Moviepy生成灰度视频处理遇到几个有意思的问题

    一 引言 最近在学习图像处理的 直方图处理 对直方图均衡处理效果感觉非常有用 以前学习Moviepy音视频剪辑时 用的卓别林的一个黑白视频片段 感觉视频的噪点比较多 画面也整体偏暗 不禁想看看如果对其进行直方图均衡会怎么样 如是开干 但进展
  • Sqli-labs靶场笔记2(Less-2~4 联合注入)

    sqli labs的Less2到Less4三道题都可以用联合注入解决 所以放到一起来记录 联合注入的基本思路方法可以看我的上一篇博客 这里只针对题目来写 Less2 还是跟Less1一样 想要夹带私货 就得要先想办法闭合 我们先输入单引号看
  • Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection

    ssh连接ubuntu之后出现Failed to connect to https changelogs ubuntu com meta release lts Check your Internet connection 解决方法如下 1
  • 命令行窗口-隐藏黑窗口

    要想cmd运行时隐藏黑窗口 最好的方法是使用vbs文件实现 1 新建run vbs 编辑内容 set ws WScript CreateObject WScript Shell ws Run run bat 0 run bat放到同目录下
  • 银联与支付宝

    摘要 银联终于要结束12年的垄断生涯 在银联12年的发展过程中 最为引人注目的就是和支付宝的多年恩怨 这十年 双方经历了从最初的会面 到不欢而散 再到各自成长和冲突 十年后 银联和支付宝都已经成为各自领域的全球顶级玩家 但是目前仍未达成实质
  • Qt项目ui文件中新添加的控件在代码中不识别的问题解决

    今天在学Qt框架的信号槽 然后发现在ui中加的控件 通过ui gt 找不到 没有识别 于是上网查找了一下问题 解决方法 添加ui控件后 执行程序 退出程序 将debug目录下的ui XXXX h拷贝到程序目录下 重新打开就可以使用新添加的控
  • 偷偷学习shell脚本之循环语句和转义字符

    目录 一 for循环语句 二 while循环语句 三 until循环语句 四 结束循环 break和continue 五 IFS字段分隔符 补充 六 转义字符 面对列表重复任务时 if语句难以满足需求 按着顺序编写 又非常耗时间 这时候就需
  • 【阅读笔记】联邦学习实战——联邦学习医疗健康应用案例

    联邦学习实战 联邦学习医疗健康应用案例 前言 1 医疗健康数据概述 2 联邦医疗大数据与脑卒中预测 2 1 联邦数据预处理 2 2 联邦学习脑卒中预测系统 3 联邦学习在医疗影像中的应用 3 1 肺结节案例描述 3 2 数据概述 3 3 联
  • 超越所有MIM模型的BEiT v2来了!微软使用矢量量化视觉Tokenizers的掩码图像建模!

    写在前面 蒙面图像建模 MIM 通过恢复损坏的图像patch 在自监督表示学习中展示了令人印象深刻的结果 然而 大多数方法仍然对低级图像像素进行操作 这阻碍了对表示模型的高级语义的利用 在这项研究中 作者提出使用语义丰富的视觉标记器作为掩码
  • 【论文精读】ViLT: Vision-and-Language Transformer Without Convolution or Region Supervision

    Hierarchical Text Conditional Image Generation with CLIP Latents 前言 Abstract 1 Introduction 2 Background 2 1 Taxonomy of
  • Android编译之常用配置及mk模板使用(汇总一)

    Android编译之常用配置及mk模板使用 引言 编译选项 1 eng 2 user 3 userdebug 模块编译常量宏 常用模块编译模板 1 编译一个APK 2 编译一个Java 共享库和静态库 3 编译一个Native 共享库和静态
  • 利用python做数据分析

    数据分析是指对数据进行控制 处理 整理 分析的过程 在这里 数据 是指结构化的数据 例如 记录 多维数组 Excel 里的数据 关系型数据库中的数据 数据表等 1 为什么要用python做数据分析 很多人都有兴趣选择python作为数据分析
  • 阿里P7大牛亲自教你!妈妈再也不用担心我的面试,讲的明明白白!

    第一次观看我文章的朋友 可以关注 点赞 转发一下 每天分享各种干货技术和程序猿趣事 前言 随着移动终端的快速发展 Android开发人员也越来越多 Android开发市场也进入了一个饱和的状态 Android开发人员也面临着难找一份好工作的
  • 虚拟机 服务器死机,VMware虚拟机开机卡死黑屏,进不了系统解决办法

    Vmware虚拟机Linux Ubuntu CentOS windowns开机启动卡死黑屏 想重置虚拟机又没有拍摄快照 重新装一次虚拟机 别着急 这里有个方法可以试一试 VMware 15 5 0 build 14665864 物理机操作系
  • python怎么算数据平均数,python怎样求10个数的平均数

    python怎样求10个数的平均数 发布时间 2021 03 12 09 18 47 来源 亿速云 阅读 100 作者 小新 这篇文章主要介绍了python怎样求10个数的平均数 具有一定借鉴价值 感兴趣的朋友可以参考下 希望大家阅读完这篇
  • Java JDBC快速上手

    一 JDBC介绍 JDBC Java DataBase Connectivity Java的数据库连接 JDBC 本质上是由sun公司开发的一套操作数据库的接口 规范 各个数据库厂商要想使用Java连接自己的数据库 都必须按照JDBC接口的
  • r如何让新增加的列出现在第一列 r如何调整新增加的列的位置

    https www cnblogs com liujiaxin2018 p 16211983 html 1 任意位置插入列 复制代码 gt a lt letters 1 5 gt b lt LETTERS 1 5 gt c lt sampl
  • 单元测试方法

    目录 一 单元测试概述 目录 一 单元测试概述 1 单元测试是什么呢 2 我们目前测试方法是怎么进行的 存在什么问题 3 Junit单元测试框架 4 JUnit优点 二 单元测试实现步骤 1 需求 使用单元测试进行业务方法预期结果 正确性测