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安装路径就好了
相关推荐
普通人68 小时前
WebGL与WebGPU入门指南
开发语言·webgl·1024程序员节
猫猫不是喵喵.1 天前
从0到1创建一个微服务项目
java·数据库·微服务·1024程序员节
fish_zzzz4 天前
笔记-论数据结构2
1024程序员节
普通人65 天前
PHP文件读写完全指南
开发语言·php·1024程序员节
Martina_03215 天前
AI生成3D场景从白模换成精模后镜头全偏了?用6步检查单位、枢轴与层级替换
图像处理·人工智能·3d·ai·自然语言处理·材质·1024程序员节
星云_byto6 天前
CSS布局
人工智能·机器学习·目标跟踪·1024程序员节
张小姐的猫9 天前
【MySQL】访问 & 数据流动原理
android·数据库·mysql·adb·1024程序员节
工业HMI实战笔记10 天前
印刷电路板HMI:SMT贴装的元件定位界面
制造·设计规范·设计语言·1024程序员节
Martina_032110 天前
AI生成3D模型一合并网格,材质就串色?用6步检查材质槽、UV与图集重映射
图像处理·人工智能·3d·材质·uv·游戏策划·1024程序员节
橙光成长10 天前
android-ad-cleaner:android免 Root 批量关闭系统开屏与营销推送
android·1024程序员节