在eclipse里进行Junit单元测试并生成测试报告

news2024/9/21 16:23:28

在eclipse里进行Junit单元测试,并生成测试报告

  • 准备工作
  • 单元测试步骤
    • 1.引入Junit
    • 2.生成测试类
    • 3.生成测试报告

准备工作

eclipse里自带Junit,不需要下载相应jar包,所以你只需要新建一个Java Project,在里面写你想要测试的java类文件就可以了。
首先,创建一个Java Project:
1
2
写一个计算器类Calculator作为要测试的类:
3
4
代码如下:

package code;

public class Calculator {
		
	private static double result; // 静态变量,用于存储运行结果
	 
	 public void add(int n){

	        result = result + n;

	    }

	    public void substract(int n){

	        result = result - n;  

	    }

	    public void multiply(int n){
	    	
	    	result = result * n;

	    }         

	    public void divide(int n){

	        result = result / n;

	    }

	    public void remainder(int n){

	        result = result % n;

	    }

	    public void root(double n){
	    	
	    	n=1/n;
	        result = Math.pow(result,n); 

	    }

	    public void power(int n){

	        result = Math.pow(result, n);

	    }

	    public void square(int n){

	        result = n * n;

	    }

	    public void squareRoot(int n){

	    	result = Math.sqrt(n);          

	    }

	    public void clear(){     // 将结果清零

	        result = 0;

	    }

	    public double getResult(){

	        return result;

	    }
}

然后我们就可以来进行单元测试啦~


单元测试步骤

1.引入Junit

5
6
7
8
这里选Junit4也是可以的,然后Finish->Apply and Close,然后会发现生成了一个Junit5的Library:
9

2.生成测试类

鼠标右击Junit_Test4➡New➡JUnit Test Case
10
按下图勾选设置后点击Next:
11
勾选要测试的函数,然后点击Finish,就会生成一个测试类CalculatorTest:
在这里插入图片描述
修改测试类中的内容如下,你也可以自己进行修改,这里给出的是很基础的测试,更加复杂的测试如何实现可以参考其他资料:

package code;

import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;


public class CalculatorTest {

private static Calculator calculator = new Calculator();
	
	@Before
	public void setUp() throws Exception {
		calculator.clear();
	}

	@Test
	public void testAdd() {
		calculator.add(2);

        calculator.add(3);

        assertEquals(5, calculator.getResult(),0.001);
	}

	@Test
	public void testSubstract() {
		calculator.add(10);

        calculator.substract(2);

        assertEquals(8, calculator.getResult(),0.001);
	}

	@Test
	public void testMultiply() {
		calculator.add(10);

        calculator.multiply(2);

        assertEquals(20, calculator.getResult(),0.001);
	}

	@Test
	public void testDivide() {
		calculator.add(8);

        calculator.divide(2);

        assertEquals(4, calculator.getResult(),0.001);
	}
	
	@Test
	public void testRemainder() {
		calculator.add(20);
		calculator.remainder(3);
		assertEquals(2, calculator.getResult(),0.0001);
	}

	@Test
	public void testRoot() {
		calculator.add(27);
		calculator.root(3);
		assertEquals(3, calculator.getResult(),0.0001);
	}

	@Test
	public void testPower() {
		calculator.add(2);
		calculator.power(3);
		assertEquals(8, calculator.getResult(),0.0001);
	}
	
	@Test
	public void testSquare1(){

	        calculator.square(2);

	        assertEquals(4, calculator.getResult(),0.001);

	}     

	@Test   
	public void testSquare2(){

	        calculator.square(0);

	        assertEquals(0, calculator.getResult(),0.001);

	}

	@Test   
	public void testSquare3(){

	        calculator.square(-3);

	        assertEquals(9, calculator.getResult(),0.001);

	}

	@Test
	public void testSquareRoot() {
		calculator.squareRoot(4);
		assertEquals(2, calculator.getResult(),0.001);
	}
}

运行这个测试类:
在这里插入图片描述
运行结果:
运行结果

3.生成测试报告

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后会发现生成了一个build.xml文件,我们来运行一下这个文件:
在这里插入图片描述
在这里插入图片描述
运行成功!:
在这里插入图片描述
这里我第一次运行的时候报错了,按照网上的方法说是把jdk-lib中的tools.jar复制到jre-lib中就可以了,但是我发现我的jdk-lib中根本没有tools.jar(好像比较新的版本就是没有tools.jar的),后来我发现我的问题是出在eclipse的jdk没有设置正确,按照下面的步骤修改一下jdk就可以正常运行了。
在这里插入图片描述
在这里插入图片描述
运行成功后,我们打开自动生成的junit文件夹,找到index.html,点击就可以在浏览器中看到测试报告啦!
在这里插入图片描述


以上只是软件工程课程的一个作业总结,如果有不专业或者不严谨的地方欢迎大家指出!

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

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

相关文章

【CodeWhisperer】亚马逊版代码生成工具

大家好,我是荷逸,今天给大家带来的是代码生成工具【CodeWhisperer】 CodeWhisperer简介 CodeWhisperer是亚⻢逊出品的一款基于机器学习的通用代码生成器,可实时提供代码建议。 在编写代码时,它会自动根据我们现有的代码和注释生…

数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入

文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 数据特征选择 | Matlab实现具有深度度量学习的时频特征嵌入。 深度度量学习尝试学习非线性特征嵌入或编码器,它可以减少来自同一类的示例之间的距离(度量)并增加来自不同类的示例之间的距离。 以这种方式工作的…

Portraiture 4.0.3 for windows/Mac简体中文版(ps人像磨皮滤镜插件)

Imagenomic Portraiture系列插件作为PS磨皮美白必备插件,可以说是最强,今天它更新到了4.0.3版本。但是全网都没有汉化包,经过几个日夜汉化,终于汉化完成可能是全网首个Portraiture 4的汉化包,请大家体验,有…

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解)

IntelliJ IDEA 如何优雅的添加文档注释(附详细图解) 📌提要✍✍类注释✍✍方法注释 📌提要 在开发过程中,最常用的注释有两种:类注释和方法注释,分别是为类和方法添加作者、日期、版本号、描述等…

[ MySQL ] — 库和表的操作

目录 库的操作 创建数据库 语法: 使用: 字符集和校验规则 查看系统默认字符集以及校验规则 查看数据库支持的字符集 查看数据库支持的字符集校验规则 校验规则对数据库的影响 操纵数据库 查看数据库 显示创建语句 修改数据库 删除数据库 备…

【Jenkins】Jenkins 安装

Jenkins 安装 文章目录 Jenkins 安装一、安装JDK二、安装jenkins三、访问 Jenkins 初始化页面 Jenkins官网地址:https://www.jenkins.io/zh/download/ JDK下载地址:https://www.oracle.com/java/technologies/downloads/ 清华源下载RPM包地址&#xff…

dvwa靶场通关(十一)

第十一关&#xff1a;Reflected Cross Site Scripting (XSS) low 这一关没有任何防护&#xff0c;直接输入弹窗 <script>alert(xss)</script> 打开网页源代码&#xff0c; 从源代码中我们可以看到&#xff0c;前面是输出的第一部分Hello&#xff0c;我们输入的脚…

【C语言学习】整数的输入输出、八进制和十六进制

一、整数的输入输出 只有两种形式&#xff1a;int或long long %d:int %u:unsigned %ld:long long %lu:unsigned long long 二、八进制和十六进制 以0开头就是八进制&#xff0c;以0x开头就是十六进制。 无论是八进制还是十六进制只是如何将数字表达为字符串&#xff0c;但计…

Linux(进程)

Linux&#xff08;进程&#xff09; 1. 冯诺依曼结构体系2 . 操作系统&#xff08;OS&#xff09;3.进程task_ struct内容分类查看进程查看PID以及PPIDfork()Linux操作系统进程的状态僵尸进程孤儿进程进程优先级其他概念 1. 冯诺依曼结构体系 冯诺依曼结构也称普林斯顿结构&am…

一百四十六、Xmanager——Xmanager5连接Xshell7并控制服务器桌面

一、目的 由于kettle安装在Linux上&#xff0c;Xshell启动后需要Xmanager。而Xmanager7版本受限、没有免费版&#xff0c;所以就用Xmanager5去连接Xshell7 二、Xmanager5安装包来源 &#xff08;一&#xff09;注册码 注册码&#xff1a;101210-450789-147200 &#xff08…

css实现,正常情况下div从左到右一次排列,宽度超出时,右侧最后一个div固定住,左侧其他div滚动

需求:正常情况下 宽度超出时: 实现: <templete><div class"jieduanbox"><div v-for"(item, index) in stageList" :key"index" style"display: inline-block">.......</div><div class"rightBtn&q…

zookeeper --- 高级篇

一、zookeeper 事件监听机制 1.1、watcher概念 zookeeper提供了数据的发布/订阅功能&#xff0c;多个订阅者可同时监听某一特定主题对象&#xff0c;当该主题对象的自身状态发生变化时(例如节点内容改变、节点下的子节点列表改变等)&#xff0c;会实时、主动通知所有订阅者 …

【数据结构与算法】赫夫曼树

赫夫曼树 基本介绍 给定 n 个权值作为 n 个叶子结点&#xff0c;构造一棵二叉树&#xff0c;若该树的带权路径长度&#xff08;wpl&#xff09;达到最小&#xff0c;称这样的二叉树为最优二叉树&#xff0c;也称为哈夫曼树&#xff08;Huffman Tree&#xff09;&#xff0c;还…

并查集模板的应用:连通块

一、链接 837. 连通块中点的数量 二、题目 给定一个包含 nn 个点&#xff08;编号为 1∼n1∼n&#xff09;的无向图&#xff0c;初始时图中没有边。 现在要进行 mm 个操作&#xff0c;操作共有三种&#xff1a; C a b&#xff0c;在点 aa 和点 bb 之间连一条边&#xff0c…

全志F1C200S嵌入式驱动开发(soc系统集成)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】 任何一个嵌入式设备都是由很多的子系统组成的。这里面有硬件、有软件,还可能有机械,并不一定就是大家看到的消费电子那样,即一个soc构成了所有的系统。现实情况是,要构建一个系…

目标检测中的IOU

IOU 什么是IOU?IOU应用场景写代码调试什么是IOU? 简单来说IOU就是用来度量目标检测中预测框与真实框的重叠程度。在图像分类中,有一个明确的指标准确率来衡量模型分类模型的好坏。其公式为: 这个公式显然不适合在在目标检测中使用。我们知道目标检测中都是用一个矩形框住…

Selenium入门详细教程+实例演示

目录 1.Selenium概述 1.1什么是Selenium 1.2Selenium的优势 1.3Selenium WebDriver原理 2.Selenium环境搭建 3.Selenium 简单示例 4.八大元素定位 4.1定位方式 4.2定位方式的用法 5.Selenium API 5.1WebDriver 常用 API 5.2WebElement 常用 API 5.3代码示例 6.元素等待机…

浏览器不同源的页面之间如何跨域通信

目录 1&#xff0c;需求2&#xff0c;难点3&#xff0c;思路浏览器不同源的页面之间如何跨域通信&#xff1f; 4&#xff0c;实现第1版第2版最终版其他的问题1&#xff0c;页面路径需完全一致。2&#xff0c;事件注册问题 1&#xff0c;需求 现在有2个项目&#xff0c;页面路径…

三分钟带你快速了解MongoDB是什么及其相关基础概念

文章目录 前言1. MongoDB简介2. 业务应用场景3. 体系结构4. 数据模型5. MongoDB的特点 总结 前言 为了巩固所学的知识&#xff0c;作者尝试着开始发布一些学习笔记类的博客&#xff0c;方便日后回顾。当然&#xff0c;如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜…

SpringBoot第31讲:SpringBoot集成ShardingJDBC - Sharding-JDBC简介和基于MyBatis的单库分表

SpringBoot第31讲&#xff1a;SpringBoot集成ShardingJDBC - Sharding-JDBC简介和基于MyBatis的单库分表 本文是SpringBoot第31讲&#xff0c;主要介绍分表分库&#xff0c;以及SpringBoot集成基于ShardingJDBCMyBatis的单库分表实践 文章目录 SpringBoot第31讲&#xff1a;Spr…