Junit4测试框架的使用(一)

      Junit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression testing framework)。利用Junit进行的程序员测试,也就是所谓的“白盒测试”,因为程序员不但知道被测试的软件或者代码实现什么功能,还知道是怎么实现这些功能的。
     今天我们介绍的是Junit4测试框架,跟Junit3以及以前的测试框架不同,3.x以及以前的Junit测试框架是在做测试用例的时候,必须继承TestCase类,而Junit4利用annotations即注释的来编写自己的测试用例。
     下面我们解释一下,Junit4中常用的annotations:
      @BeforeClass: 在整个测试用例实例化前执行一些初始化工作。
      @AfterClass: 在整个测试用例执行完以后执行一些释放资源之类的工作。
      @Before:在每个测试方法之前执行一次。
      @After:在每个测试方法执行完之后执行一次。
      @Test: 测试方法。

             Test中有两个参数,一个是Timeout,设置方法在一定时间内执行完毕,否则返回错误。另一个是excepted,用于检测测试方法是否抛出异常。

      @Ignore: 注释掉一个测试方法或者测试类,在执行测试的时候,不执行这个方法或者测试类。

      @RunWith: 指定执行测试的Runner,如果没有此注释,使用的默认Runner。

      @Paramters:在参数化测试中,返回参数化列表。

      1 Junit4使用

        1) 下面我们就看一下Junit4在MyEclipse中的使用。首先,我们做一个用来测试的目标类。

 

/**
 * 计算器类
 * @author 
 *
 */
public class Calculator {
	/**
	 * 计算结果
	 */
    private static int result = 0;
    
    /**
     * 加法计算
     * @param num
     */
    public void add(int num1, int num2) {
    	result = num1 + num2;
    }
    
    /**
     * 减法计算
     * @param num
     */
    public void subtract(int num1, int num2) {
    	result = num1 - num2;
    }
    
    /**
     * 乘法计算
     * @param num1 乘数1 
     * @param num2 乘数2
     */
    public void multi(int num1, int num2) {
    	result = num1 * num2;
    }
    
    /**
     * 除法计算
     * @param num1 除数
     * @param num2 被除数
     */
    public void div(int num1, int num2) {
    	result = num1 / num2;
    }
    
    /**
     * 结果清零
     */
    public void clear() {
    	result = 0;
    }
    
    /**
     * 无限循环,测试需要
     */
    public void cicle() {
    	for (;;){
    	   ;	
    	}
    }
    
    /**
     * 获取结果
     * @return 结果
     */
    public int getResult() {
    	return result;
    }
}

           2)给工程添加Junit4的jar包,在工程上点击右键,点击“Build” --> "Add Libraries...",如下图所示:


Junit4测试框架的使用(一)
 

             点击之后出现如下对话框:


Junit4测试框架的使用(一)
 

 

             选择Junit之后,点击Next,然后会出现如下对话框:

              
Junit4测试框架的使用(一)
 

                选择Junit4之后,点击Finish后,Junit4所需要的包就已经加入到工程里面来了,可以在工程中确认一下。


Junit4测试框架的使用(一)
 

        3)编写测试类。

             

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 CalculatorTest {
    private static Calculator calculator = new Calculator();
    
	@BeforeClass
	public static void setUpBeforeClass() throws Exception {
		
	}

	@AfterClass
	public static void tearDownAfterClass() throws Exception {
	}

	@Before
	public void setUp() throws Exception {
		calculator.clear();
	}

	@After
	public void tearDown() throws Exception {
		calculator.clear();
	}

	@Test
	public void testAdd() {
		calculator.add(5, 6);
		assertEquals(11, calculator.getResult());
	}
	@Test
	public void testMulti() {
		calculator.add(5, 6);
		assertEquals(30, calculator.getResult());
	}

}

 
    在这个测试类中,我们只测试了add()方法和mutil()方法用作示范。这里注意,test方法的名称受限制,但是必须是public void。

    BeforeClass和AfterClass必须是public static void,因为一个是在实例初始化之前执行,另一个是在实例实例销毁后执行。

   assertEquals是断言,在Junit中有许多断言,用来检测测试方法执行的结果与期望结果是否相符。

   然后点击鼠标右键,选择“Run as” --> "Junit Test"即可进行测试。

         
 

你可能感兴趣的:(java,测试,JUnit)