首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Junit4测试框架的运用(一)

2013-08-14 
Junit4测试框架的使用(一)????? Junit是由 Erich Gamma 和 Kent Beck 编写的一个回归测试框架(regression

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();    @BeforeClasspublic static void setUpBeforeClass() throws Exception {}@AfterClasspublic static void tearDownAfterClass() throws Exception {}@Beforepublic void setUp() throws Exception {calculator.clear();}@Afterpublic void tearDown() throws Exception {calculator.clear();}@Testpublic void testAdd() {calculator.add(5, 6);assertEquals(11, calculator.getResult());}@Testpublic 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"即可进行测试。

?????????
?

热点排行