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安装路径就好了
相关推荐
liguojun20252 天前
软硬一体智慧场馆系统推荐——助力场馆数字化高效升级
java·大数据·人工智能·物联网·1024程序员节
开开心心就好14 天前
吾爱大佬原创的文件时间修改工具
安全·智能手机·pdf·电脑·智能音箱·智能手表·1024程序员节
开开心心就好19 天前
近200个工具的电脑故障修复合集
安全·智能手机·pdf·电脑·consul·memcache·1024程序员节
数据皮皮侠AI21 天前
中国城市可再生能源数据集(2005-2021)|顶刊 Sci Data 11 种能源面板
大数据·人工智能·笔记·能源·1024程序员节
计算机毕业论文辅导23 天前
物联网实战:基于MQTT协议的智能家居数据传输系统设计与实现
1024程序员节
开开心心就好24 天前
支持批量处理的视频分割工具推荐
安全·智能手机·rust·pdf·电脑·1024程序员节·lavarel
liuyao_xianhui1 个月前
Linux开发工具结尾 _make
linux·运维·服务器·数据结构·哈希算法·宽度优先·1024程序员节
学传打活1 个月前
【边打字.边学昆仑正义文化】_21_爱的结晶(1)
微信公众平台·1024程序员节·汉字·昆仑正义文化
数据皮皮侠AI1 个月前
顶刊同款!中国地级市风灾风险与损失数据集(2000-2022)|灾害 / 环境 / 经济研究必备
大数据·人工智能·笔记·能源·1024程序员节
Fab1an1 个月前
Busqueda——Hack The Box 靶机
linux·服务器·学习·1024程序员节