JUnit单元测试——学习笔记

JUnit 是用于测试 java程序的一个工具,是在软件开发中非常重要的技术。

JUnit的用处

这个工具可以针对特定的java程序生成对应的测试程序,在测试程序里用正确答案和java程序跑出来的答案做对比,一定程度上可以检验java程序的正确性。

为什么要用JUnit?

我们在编写程序的时候,常常需要在写完一个函数或者方法之后,检验它的正确性。在最基础的编程阶段时,我们写的程序通常也不会很复杂,这时候直接把答案输出来,对比对比就能出结论。但是当我们写的程序变得越来越复杂的时候,如果还在函数里面把结果输出来,之后再去找的时候就会很麻烦,如果这还不是自己写的程序,就更麻烦了,所以最好就要有一个专门用于测试的程序,这时JUnit就会显得特别重要。

JUnit在哪?

如果你安装的java编写程序是eclipse,这就很好办,因为eclipse自带JUnit,只是不同版本的eclipse把JUnit放在了不同的地方,但是也很好找。

怎么用JUnit?

  1. 既然是测试工具,那就要有被测试的对象,在学习使用JUnit的时候,可以自己先写一个简单的程序,下面是我用来测试的java程序。
package test;

public class JUnitTest {
	public int gcd(int a,int b) {
		  return b==0?a:gcd(b,a%b);
	}
	public int add(int a,int b) {
		return a+b;
	}
}

    2.  在这个包含类的project按右键->Properties->Java Build Path->Add Library->JUnit->Next->JUnit5->Finish

这样就把JUnit需要用到的包导进来了。

    3.  在这个被测试类上按右键->New->JUnit Test Case

(没有直接在菜单里找到JUnit Test Case的话可以在Other里找到Java->JUnit->JUnit Test Case,新的版本就需要自己想办法翻一翻啦。。)然后按Next,就会弹出下面这个框。

勾选setUp,按Next,就会出现下面这个框,勾选想要测试的方法

此时就会生成一个测试文件,如下所示

package test;

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

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

class JUnitTestTest {

	@BeforeEach
	void setUp() throws Exception {
	}

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

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

}

可以看到,生成的文件里面有几个标识符,如@BeforeEach和@Test,它们的解释可以参考https://junit.org/junit5/docs/current/user-guide/

在@Test之后的是测试部分,可以看到,我们之前勾选过的方法都有一个对应的测试方法,里面的内容需要自己填写,用assertEquals((正确答案),(调用程序跑出来的结果));去测试。填写后的代码如下:

package test;

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

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

class JUnitTestTest {
	JUnitTest test = new JUnitTest();
	@BeforeEach    
	void setUp() throws Exception {    
		
	}

	@Test    
	void testGcd() {        
		assertEquals(3,test.gcd(3, 9));    
	}

	@Test    
	void testAdd() {        
		assertEquals(12,test.add(3, 9));    
	}

}

    对这个测试类按右键->Run As JUnit Test,就会得到这个结果:

    左边栏会出现一个JUnit的结果:

下面显示的  Runs:2/2  表示两个Test都可以运行,Errors:0表示没有出错,Failures:0表示没有运行失败,这时下面显示出一个绿色的横条,表明测试没有出错,如果出错了,下面就会是红色的横条,横条下面就会有各个测试的情况,若某个测试的右下角有一个小小的红色叉号,表明这个测试出了错,点击这个测试,下面的Failure Trace就会显示出错误原因。


这个只是初步的学习,之后对JUnit有了更深一步的理解或者更好的应用的时候再回来更新吧~~

 

 

    

 

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值