Java测试单元JUnit4 immoc学习笔记(一)

一.概述:

1.1什么是JUnit?

JUnit是一个Java语言的单元测试框架。它由Kent Beck和Erich Gamma建立,逐渐成为源于Kent Beck的sUnit的xUnit家族中最为成功的一个。
xUnit是一套基于测试驱动开发的测试框架,其中包括PythonUnit,CppUnit,JUnit,分别对应Python,C,Java三种语言。

1.2 JUnit有什么作用?

Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。Junit是一套框架,继承TestCase类,就可以用Junit进行自动测试了。

1.3JUnit官网:

http://junit.org/

二.如何应用Junit?

2.1新建class引入Junit的jar包

新建Project–>Next–>Next–>Libraries–>Add Library–>JUnit–Next–>JUnit5–>Finish

此时我们新建一个新的class名为Calculate,写几个方法

public class Calcuate {
	
	public int add(int a,int b){
		return a+b;
	}
	
	public int subtract(int a,int b){
		return a-b;
	}
	public int multiply(int a,int b){
		return a*b;
	}
	public int divide(int a,int b){
		return a/b;
	}
}

现在的目录:
在这里插入图片描述

2.2创建测试类

我们可以对Calculate创建测试类,右键Calculate–>new --> JUnit Test Case
如果在new中没有找到JUnit Test Case,可以点击other–>java–>JUnit–>JUnit Test Case
如果将JUnit Test Case放到New中以便操作,可以参考这篇《文章Eclipse中new一个Junit test case的class只能从other中找的问题》

在这里插入图片描述
选择你要测试的方法:
在这里插入图片描述

现在创建了还没写方法体的Calcuate测试类:

import static org.junit.jupiter.api.Assertions.*;

import org.junit.jupiter.api.Test;

class CalcuateTest
{

	@Test
	void testAdd()
	{
		fail("Not yet implemented");
	}

	@Test
	void testSubtract()
	{
		fail("Not yet implemented");
	}

	@Test
	void testMultiply()
	{
		fail("Not yet implemented");
	}

	@Test
	void testDivide()
	{
		fail("Not yet implemented");
	}
}

我们补全代码:


import org.junit.Assert;
import org.junit.jupiter.api.Test;

class CalcuateTest
{

	Calcuate calcuate;

	@Test
	void testAdd()
	{
		calcuate = new Calcuate();
		int result = calcuate.add(2, 3);
		Assert.assertEquals("加法有问题", 5, result);
		/*
		 * "加法有问题":期望值和实际值不一致时,显示的信息
		 * 5 :期望值
		 * result :实际值
		 */
	}

	@Test
	void testSubtract()
	{
		calcuate = new Calcuate();
		int result = calcuate.subtract(12, 2); 
		Assert.assertEquals("减法有问题", 10000, result); //故意设置减法期望值为10000
	}

	@Test
	void testMultiply()
	{
		calcuate = new Calcuate();
		int result = calcuate.multiply(2, 3);
		Assert.assertEquals("乘法有问题", 6, result);
	}

	@Test
	void testDivide()
	{
		calcuate = new Calcuate();
		int result = calcuate.divide(6, 3);
		Assert.assertEquals("除法有问题", 2, result);

	}

}

在这里插入图片描述
结果显示,Runs:4/4表示运行了4个方法,Failures:1表示四个方法其中有一个方法未通过测试。未测试通过的方法就是我们故意设置的testSubtract()。

下图中写出了测试未通过的原因:
在这里插入图片描述

文献参考:

  1. https://baike.baidu.com/item/junit/1211849?fr=aladdin#reference-[1]-66926-wrap
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值