Junit使用

一、Junit常用注释

  • @Test 将一个普通的方法修饰成为一个测试方法。
    • @Test(excepted=XX.class)
      • @Test(excepted=ArithmeticException.class):预期被测方法是否抛出ArithmeticException异常
    • @Test(timeout=毫秒)
  • @BeforeClass:它会在所有的方法运行前被执行:static修饰,只执行一次。
  • @AfterClass:它会在所有的方法结束后被执行:static修饰,只执行一次。
  • @Before:会在每一个测试方法被运行前都执行一次。
  • @After:会在每一个测试方法运行后被执行一次。
  • @Ignore:所修饰的测试方法会被测试运行器忽略。
  • @RunWith:可以更改测试运行器org.junit.runner.Runner

Junit4的单元测试用例执行顺序为:@BeforeClass->@Before->@Test->@After->@AfterClass

每一个测试方法的调用顺序为:@Before->@Test->@After

二、测试套件

@RunWith注解:当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,Junit将会使用这个注解所指明的测试运行器进行测试。

多个测试代码类一起运行。

说明:

  • 使用@RunWith注解,修改测试运行器,例如@RunWith(Suite.class) ,这个类就成为测试套件的入口类
  • @Suite.SuiteClasses()中放入测试套件的测试类,以数组的形式{class1,class2}作为参数

三、JUnit参数化设置

如果测试代码大同小异,代码结构都是相同的,不同的只是测试的数据和预期值,那么有没有更好的方法将相同的代码结构提取出来,提高代码的重用度呢?

解决:进行参数化测试

步骤:

  1. 要进行参数化测试,需要在类上面指定如下的运行器:@RunWith(Parameterized.class)
  2. 在提供数据的方法上加上一个@Paramater注解,这个方法必须是静态static 的,并且返回一个集合Collection
  3. 在测试类的构造方法中为各个参数赋值(构造方法是由Junit调用的),最后编写测试类,它会根据参数的组数来运行测试多次。
java 复制代码
import static org.junit.Assert.*;

import java.lang.reflect.Array;
import java.util.Arrays;
import java.util.Collection;

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

@RunWith(Parameterized.class)
public class TestParameter {
	
	private static Calculator calcultor = new Calculator();
	int expected = 0;
	int num1 = 0;
	
	//提供测试数据
	@Parameters
	public static Collection<Object[]> data() {
		/*
		 * 2 2
		 * 3 3
		 * 4 4
		 * */
		return Arrays.asList(new Object[][]{{2,2},{5,3},{9,4}});
	}
	
	//给Junit调用
	public TestParameter(int expected,int num1) {
		this.expected = expected;
		this.num1 = num1;
	}
	
	//在此类下,此方法运行3次
	@Test
	public void testAdd() {
		calcultor.add(num1);
		assertEquals(expected, calcultor.getResult());
	}
	
//	@Test
//	public void testAdd() {
//		calcultor.add(2);
//		assertEquals(2, calcultor.getResult());
//	}
	
}

四、Junit测试步骤:

1、创建测试类

2、选择要测试的方法

3、设计测试用例,用断言方式比较

4、运行测试类,查看测试结果

5、查看测试覆盖率

五、在eclipse中配置jdk

  1. 在eclipse中配置jdk
    Window-->Preferences-->java-->installed JREs-->add-->Standard VM-->选择jdk安装路径就好了
相关推荐
扫地的小何尚21 小时前
NVIDIA RTX PC开源AI工具升级:加速LLM和扩散模型的性能革命
人工智能·python·算法·开源·nvidia·1024程序员节
数据皮皮侠AI2 天前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
开开心心就好2 天前
系统清理工具清理缓存日志,启动卸载管理
linux·运维·服务器·神经网络·cnn·pdf·1024程序员节
Evan东少5 天前
[踩坑]笔记本Ubuntu20.04+NvidiaRTX5060驱动+cuda+Pytorch+ROS/Python实现人脸追踪(环境准备)
1024程序员节
不爱编程的小陈6 天前
C/C++每日面试题
面试·职场和发展·1024程序员节
开开心心就好6 天前
右键菜单管理工具,添加程序自定义名称位置
linux·运维·服务器·ci/cd·docker·pdf·1024程序员节
码农三叔7 天前
(4-2-05)Python SDK仓库:MCP服务器端(5)Streamable HTTP传输+Streamable HTTP传输
开发语言·python·http·大模型·1024程序员节·mcp·mcp sdk
西幻凌云11 天前
初始——正则表达式
c++·正则表达式·1024程序员节
启芯硬件11 天前
电源XL6009E1的dieshot细节分析-芯片设计干货
大数据·经验分享·硬件工程·1024程序员节
一颗青果13 天前
单例模式 | 死锁
linux·服务器·单例模式·1024程序员节