Java中Junit的使用实例

Junit框架 ,本质就是一个jar包,它提供了规则,@test用例 @Before用例的前置条件,@After用例的后置条件,@BeforeClass类的初始化条件,@AfterClass类的清理条件,suite 管理用例,提供一个面板查看用例的通过与否,提供断言机制

具体案例如下:

package com.my.junit4;

public class Calculator {
	
	public int divide(int a,int b) {
		if(b == 0) {
			return 0;
		}
		return a/b;
	}

}

使用Junit对上面的类进行测试:

package com.my.junit4;

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 CalcBaseTest {

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

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

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

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

	@Test
	public void test1() {
		System.out.println("test1");
		Calculator ca = new Calculator();
		assertEquals(5, ca.divide(10, 2));
	}
	
	@Test
	public void test2() {
		System.out.println("test2");
		Calculator ca = new Calculator();
		assertEquals(0, ca.divide(10, 0));
	}

}

运行结果如下:

运行结果:

 

若是要对用例集进行测试,加一个Suite,右键类所在的包->new->other->Java->Junit->Junit Test Suite,

如下可对CalcTest.class和CalcTest2.class中所有的方法进行测试

package com.my.io.demo;

import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;

@RunWith(Suite.class)
@SuiteClasses({ CalcTest.class, CalcTest2.class })

public class AllTests {

}
package com.my.io.demo;

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 CalcTest {

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

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

	@Test
	public void testDivide1() {
		System.out.println("testDivide1");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 1);
		assertEquals(10,result);	
		
	}
	@Test
	public void testDivide2() {
		System.out.println("testDivide2");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 0);
		assertEquals(0,result);	
		
	}
	
	@Test
	public void testDivide3() {
		System.out.println("testDivide3");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 2);
		assertEquals(3,result);	
		
	}
	
	
	@Test
	public void testDivide4() {
		
		assertTrue(true);	
		
		assertEquals(true,true);	
		
	}
	
	@Test
	public void testDivide5() {
		
		assertNull(null);	
		assertEquals(null,null);	
		
	}
	
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		
		System.out.println("setUpBeforeClass");
	}

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


}
package com.my.io.demo;

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 CalcTest2 {

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

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

	@Test
	public void testDivide1() {
		System.out.println("testDivide1");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 1);
		assertEquals(10,result);	
		
	}
	@Test
	public void testDivide2() {
		System.out.println("testDivide2");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 0);
		assertEquals(0,result);	
		
	}
	
	@Test
	public void testDivide3() {
		System.out.println("testDivide3");
		Calculator cal=new Calculator();
		int result=cal.divide(10, 2);
		assertEquals(3,result);	
		
	}
	
	
	@Test
	public void testDivide4() {
		
		assertTrue(true);	
		
		assertEquals(true,true);	
		
	}
	
	@Test
	public void testDivide5() {
		
		assertNull(null);	
		assertEquals(null,null);	
		
	}
	
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		
		System.out.println("setUpBeforeClass");
	}

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


}

运行AllTests结果如下:

 

参数化处理:

package com.my.junit4;
import static org.junit.Assert.assertEquals;
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 ParaTest {
	private int input1; 
    private int input2; 
    private int expected; 
    @Parameters 
    public static Collection<Object[]> prepareData(){ 
        Object [][] object = {{3,1,3},{25,5,5},{36,6,6},{0,4,7}}; 
        return Arrays.asList(object); 
    }    
    public ParaTest(int input1,int input2,int expected){ 
        this.input1 = input1; 
        this.input2 = input2; 
        this.expected = expected; 
    }   
    @Test 
    public void testDiv(){ 
        Calculator calc = new Calculator(); 
        int result = calc.divide(input1,input2);//input1,input2,expected分别对应二维数组元素的第一个,第二个和第三个元素
        assertEquals(expected,result); 
    } 
}

运行结果:

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值