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安装路径就好了
相关推荐
计算机毕业论文辅导1 天前
物联网实战:基于MQTT协议的智能家居数据传输系统设计与实现
1024程序员节
开开心心就好2 天前
支持批量处理的视频分割工具推荐
安全·智能手机·rust·pdf·电脑·1024程序员节·lavarel
liuyao_xianhui4 天前
Linux开发工具结尾 _make
linux·运维·服务器·数据结构·哈希算法·宽度优先·1024程序员节
学传打活6 天前
【边打字.边学昆仑正义文化】_21_爱的结晶(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
数据皮皮侠AI13 天前
顶刊同款!中国地级市风灾风险与损失数据集(2000-2022)|灾害 / 环境 / 经济研究必备
大数据·人工智能·笔记·能源·1024程序员节
Fab1an14 天前
Busqueda——Hack The Box 靶机
linux·服务器·学习·1024程序员节
技术专家14 天前
Stable Diffusion系列的详细讨论 / Detailed Discussion of the Stable Diffusion Series
人工智能·python·算法·推荐算法·1024程序员节
学传打活17 天前
古代汉语是源,现代汉语是流,源与流一脉相承。
微信公众平台·1024程序员节·汉字·中华文化
学传打活22 天前
【边打字.边学昆仑正义文化】_19_星际生命的生存状况(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
unable code1 个月前
[HNCTF 2022 WEEK2]ez_ssrf
网络安全·web·ctf·1024程序员节