java junit测试类怎么写_15.junit测试类使用及注解

java junit测试类怎么写_15.junit测试类使用及注解1 junit 简介 JUnit 是一个 Java 语言的单元测试框架 可以大大缩短你的测试时间和准确度 多数 Java 的开发环境都已经集成了 JUnit 作为单元测试的工具 2 实现 junitDemo 示例 2 1 首先创建一个 project 2 2 然后输入项目名 点击 finish 2 3 然后在 src 里创建我们要测试的 mathDemo 类 2 4 输入 mathDemo 类名 点击 finish 2 5matchDemo 类定

1.junit简介

JUnit是一个Java语言的单元测试框架,可以大大缩短你的测试时间和准确度。多数Java的开发环境都已经集成了JUnit作为单元测试的工具。

2.实现junitDemo示例

2.1首先创建一个project:

fd642f65ab7c09d159a69260289b818c.png

2.2然后输入项目名,点击finish:

bb218681ea65ffaec18fe3797b69eed8.png

2.3然后在src里创建我们要测试的mathDemo类:

a1fc8c82dc82431ef0fddfd773d815d5.png

2.4输入mathDemo类名,点击finish:

99ad287b5ef94235e84e54c9e2ff3d3c.png

2.5 matchDemo类定义如下:

packagecom.my.mathdemo;public classmathDemo {public int add(int a,intb)

{return a+b;

}public int multiply(int a,intb)

{return a*b;

}

}

接下来我们便来创建junit,来测试mathDemo类的add和multiply方法

2.6 然后我们创建一个junit测试类

21f342f0deb7c2a701177ace4598bd05.png

2.7输入junit名,点击finish:

9e019b481e8cffc1df60221ff3bb8dc2.png

2.8 TestMyMath测试类如下所示:

public classTestMyMath {

@Testpublic voidtestAdd() {

mathDemo math= newmathDemo();

assertEquals(math.add(11, 5), 16); //测试11+5是否等于16assertEquals(math.add(3, 5), 9); //故意写个错误的加法测试}

@Testpublic voidtestMultiply() {

mathDemo math= newmathDemo();

assertEquals(math.multiply(10, 5), 50); //测试10*5是否等于50}

}

在上面,我们故意写了一个错误的测试,然后run运行后,如下图所示,可以看到报错log:

efd60907e8700f0cb2a0f641a17be5ad.png

3.为什么测试方法前面要加@Test?

这是jdk1.5新增加的注解功能,并且对于junit类而言,每个方法前的注解必须存在,否则会报错,因为编译器不知道这个方法是用来测试哪个用途上.

而@Test表示该方法为测试方法,除了@Test外还有:

@BeforeClass  :该方法表示启动测试类对象测试之前启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来打开配置文件,初始化资源等

@AfterClass   :该方法表示测试类对象测试完成之后启动的方法, 所以该方法必须是static 修饰的(可以通过类名直接访问).一般用来关闭数据库,结束资源等

@Before          :该方法表示调用每个测试方法前都会被调用一次

@After             :该方法表示调用每个测试方法后都会被调用一次

@Ignore          :已经被忽略的测试方法 ,我们测试的话,会自动过滤掉

4.而JAVA内置注解有三种(除此外,还有其它注解,后面遇到在详细补充)

@Deprecated :表示该方法已被弃用(一般表示该方法不适合当前版本),一般会有最新的方法来替代它

@Override:覆盖父类方法

@Suppvisewarning:忽略警告,比如我们定义了一个未使用的变量,或者调用一个已经被弃用的方法(通过@Deprecated声明的方法),都会出现警告,通过该注解则可以忽略掉

@Suppvisewarning常用的参数有:

@SuppressWarnings(“all”)  :告诉编译器忽略掉所有警告

@SuppressWarnings(“unused”) :告诉编译器忽略掉未定义了未使用的变量

@SuppressWarnings(“unchecked”)  :告诉编译器忽略 unchecked 警告信息,如使用List,ArrayList等未进行参数化产生的警告信息。

@SuppressWarnings(“serial”)  :如果编译器出现这样的警告信息:The serializable class WmailCalendar does notdeclare a static final serialVersionUID field of type long  使用这个注释将警告信息去掉。

@SuppressWarnings(“deprecation”)  :如果使用了使用@Deprecated注释的方法,编译器将出现警告信息。 使用这个注释将警告信息去掉。

@SuppressWarnings(“unchecked”, “deprecation”)  :告诉编译器同时忽略unchecked和deprecation的警告信息。

如下图所示,我们定义一个未使用的int i,则会出现警告:

bc6fe1054899b2c8d8ff9b3829b9653f.png

双击后,可以看到已经忽略警告:

89b997e3ecaefc1e6b0a936a65864051.png

5.如果我们不想在junit里写测试方法.直接运行被测试的方法

在被测方法前面添加@Test即可,如下所示,比如测试DomParseTest类的DomTest方法:

7531c2ef5c640221e5e6bae61141c609.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/211753.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午9:40
下一篇 2026年3月18日 下午9:41


相关推荐

  • OpenClaw高级配置和自动化教程

    OpenClaw高级配置和自动化教程

    2026年3月13日
    2
  • fec什么意思_QQ浏览器怎么使用WebRTC

    fec什么意思_QQ浏览器怎么使用WebRTCWebRTC::FEC目录WebRTC::FEC ULPFEC FLEXFEC Encodeulpfec Decodeulpfec 动态FEC冗余度 FlexFECinWebRTC WebRTC::FECTags:WebRTCFECWebRTC中的FEC实现分为UlpFEC和FlexFEC ulpfec:rfc5109 …

    2022年8月11日
    11
  • SPSS操作(四):系统聚类分析

    SPSS操作(四):系统聚类分析现用如下数据做系统聚类分析:将数据导入spss中,如图:步骤如下:①【分析】—-【分类】—-【系统聚类】②x2、x3、x4、x5、x6、x7、x8添加到变量,x1(即地区)添加到个案标注依据小技巧:添加变量的时候,可以单击【医疗机构床位数(张)】,然后按住shift键不松,鼠标单击【医院(个)】就可以选择多个变量一起添加③点击【统计】勾选【解的范围】,可以根据自己的需要选择最小聚类数和最大聚类数(这里我设置为2和5),然后点击【继续】④点击【图】,(这里我选择的是做系谱图

    2022年10月18日
    6
  • transE(Translating Embedding)详解+简单python实现

    transE(Translating Embedding)详解+简单python实现表示学习旨在学习一系列低维稠密向量来表征语义信息 而知识表示学习是面向知识库中实体和关系的表示学习 当今大规模知识库 或称知识图谱 的构建为许多 NLP 任务提供了底层支持 但由于其规模庞大且不完备 如何高效存储和补全知识库成为了一项非常重要的任务 这就依托于知识表示学习 transE 算法就是一个非常经典的知识表示学习 用分布式表示 distributedr 来描述知识库

    2026年3月17日
    2
  • 计算机编程原理_如何编程

    计算机编程原理_如何编程一、Socket简介Socket是进程通讯的一种方式,即调用这个网络库的一些API函数实现分布在不同主机的相关进程之间的数据交换。几个定义:(1)IP地址:即依照TCP/IP协议分配给本地主机的网络地址,两个进程要通讯,任一进程首先要知道通讯对方的位置,即对方的IP。(2)端口号:用来辨别本地通讯进程,一个本地的进程在通讯时均会占用一个端口号,不同的进程端口号不同,因此在通

    2022年10月17日
    11
  • vmware16虚拟机安装教程win10_虚拟机安装ghostwin7

    vmware16虚拟机安装教程win10_虚拟机安装ghostwin7相对于vm15而言,vm16虚拟机它的基础上进行了全方面的改善和优化,如能够从vmx中删除图形渲染并将其作为单独的沙箱进程运行,可以增强虚拟机的安全性,还支持在WorkstationPro顶部运行的KINDkubernetes集群,与虚拟机虚拟XHCI控制器USB3.1,以及支持10Gbps等等,最值得一提的是支持暗模式,主要优势在于弱光环境下具有更高的可读性,且降低了设备屏幕的亮度,改善…

    2025年11月17日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号