Junit的基本使用(详解)

什么是Junit?

Junit是xUnit的一个子集,在c++,paython,java语言中测试框架的名字都不相同

xUnit是一套基于测试驱动开发的测试框架

其中的断言机制:将程序预期的结果与程序运行的最终结果进行比对,确保对结果的可预知性

java所用的测试工具是Junit,Junit不需要去网上下载,在ecliplse中有:

1.新建一个工程

2.工程右键,点击Properties

3.


4.


5.


6.


7.



这是使用Junit最先要完成的 在完成了这个就进入下一步吧!

来简单使用一下Junit!

新建一个类:Calculate

package com.fulisha.textjunit;

public class Calculate {
public int add(int a,int b){
	return a+b;
}
public int substract(int a , int b){
	return a-b;
}
public int cheng(int a,int b){
	return a*b;
}
public int chu(int a, int b){
	return a/b;
}

}

再新建一个测试类

package com.fulisha.textjunit;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculateTest {

	@Test
	public void testAdd(){
		assertEquals(6,new Calculate().add(3, 3));
	}
	
	@Test
	public void testsubstract(){
		assertEquals(2,new Calculate().substract(5, 3));
	}
	
	@Test
	public void testcheng(){
		assertEquals(15,new Calculate().cheng(5, 3));
	}
	@Test
	public void testchu(){
		assertEquals(2,new Calculate().chu(6, 3));
	}
}

测试后的结果:


对此进行总结:

1.测试方法上必须使用@Test

2.测试方法必须使用 public void进行修饰

3.新建一个源代码目录来存放测试代码

4.测试类的包应该和被测试类的包一样

5.测试单元中的每个方法一定要能够独立测试,其方法不能有任何依赖

如果,测试的方法多,不想一个个的建立测试方法那么:

1.选择要测试的方法,右击New  选择other



2.


3.


4.


5.


6.


7.创建结果

package com.fulisha.textjunit;

import static org.junit.Assert.*;

import org.junit.Test;

public class CalculateTest3 {

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

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

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

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

}

再在这个基础上进行修改测试类方法


在测试中结果中关于Failure和error的解释

1.Failure 一般由测试单元使用断言方法判断失败引起的,这个报错,说明测试点发现了问题,即程序输出的结果和我们预期的不一样

2.error 是由代码异常引起的,它可以产生代码本身的错误,也可以是测试代码中的一个隐藏bug

!!!测试用例不是用来证明你是对的,而是用来证明你没错


关于Junit运行流程

package com.fulisha.textjunit;

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class JunitFlowText {

	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
	System.out.println("this is beforeClasss....");
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
		System.out.println("this is afterClasss....");
	}

	@Before
	public void setUp() throws Exception {
		System.out.println("this is brfore....");
	}

	@After
	public void tearDown() throws Exception {
		System.out.println("this is after....");
	}

	@Test
	public void test1() {
		System.out.println("this is test1....");
	}
	@Test
	public void test2() {
		System.out.println("this is test2....");
	}
}

运行结果:



总结:

@BeforeClass

修饰的方法会在所有方法被调用前执行,且该方法时静态的,所以当测试类被加载后就接着运行它,而且在内存中他只会存在一份实例,他比较适合加载配置文件(针对所有测试,只执行一次 )

@AfterClass

所修饰的方法通常用来对资源管理,如关闭数据库连接(针对所有测试,只执行一次 )

@Before和@After 会在每个测试方法前后各执行一次

@Test:测试方法,在这里可以测试期望异常和超时时间

@Ignore:忽略的测试方法  

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值