记录追寻测试架构师之路上的点点滴滴。

[Test]Junit 4初级指南

上一篇 / 下一篇  2011-12-22 02:16:58 / 个人分类:测试技术

原文链接:http://www.wangyuxiong.com/archives/51476


      Junit是什么我觉得没有必要再说了,这里只是简单介绍一下我们的使用的场景,算是简单入门级的东西,所以,已经使用过或者了解过,可以移步啦!

 

1. 环境搭建


     1.1 从https://github.com/KentBeck/junit/downloads 上下载你需要的junit,目前版本已经到4.10,我这里选择最新版下载,顺便了解一下annotations 。

 

2. 使用JUnit

 

2.1 新建一个工程”FirstSample”.

image

 

2.2 将测试类和被测对象分离

右键你的工程名,点击属性,弹出属性对话框,找到Java Build Path。选择source tab栏,最后点击Add Folder,建一个test的文件夹。

image

 

2.3  新建一个java类

在src文件夹下,新建一个com.lifeware.sample的包和下面的类:

package com.lifeware.sample;

public class Operator {

     public int add(int a,int b){

           return a+b;

      }

     public int multiply(int a,int b){

          return a/b;

      }

}

image

 

2.4  新建一个测试类

右键你刚刚新建的class,弹出的菜单中选择新建一个测试类,需要将测试类的存放位置改为test folder。

image

点击”Next”,就可以选择需要对那些方法进行测试。

如果junit并不在的你的classpath中,则会弹出这样的对话框,确定即可:

image

 

2.5 编写测试代码

package com.lifeware.sample; 
import static org.junit.Assert.*; 
import org.junit.Test; 

public
 class OperatorTest { 
@Test 
public void testAdd() { 
        Operator p = new Operator(); 
        assertEquals(3,op.add(1, 2)); 

}

@Test 
public void testMultiply() { 
        Operator p = new Operator(); 
        assertEquals(2,op.multiply(10, 5)); 
    } 

}

 

2.6 在Eclipse下运行你的测试案例

右键你刚写好的测试类,依次点击: Run As—> Junit Test. 如下所示:

image

运行的结果如下图所示:

image

 

2.7 对多个tests进行合并的方法

假设有多个test class需要进行测试,那么我们可以将一些class放到一个suite进行管理,所以,我们先创建一个suite:

右键这些 test classes: New → Other → JUnit → Test Suite, 如下图所示.

image

Next下去,选择你需要合并的test 。在新建的一个AllTests类的suite里,代码如下:

package com.lifeware.sample; 
import org.junit.runners.Suite; 
import org.junit.runner.RunWith; 
import org.junit.runners.Suite;

@RunWith(Suite.class
@Suite.SuiteClasses( { OperatorTest.class }) 
public class AllTests { 

}

 

2.8  用代码来运行tests

除了向刚才那样在eclipse下运行我们的test case之外,我们也可以通过写执行代码来运行我们的cases。

org.junit.runner.JUnitCore 提供了一个runClasses()的方法,这个方法可以让我们运行我们的cases。

在test folder下新建一个类,MyTestRunner,代码如下:

package com.lifeware.sample; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 

public
 class MyTestRunner { 
/** 
@param args 
*/ 
public static void main(String[] args) { 
        Result result = JUnitCore.runClasses(OperatorTest.class); 
        for (Failure failure : result.getFailures()) { 
               System.out.println(failure.toString()); 
         } 
   } 

}

运行该程序,我们可以在控制台下看到失败cases的错误信息。

 

3. 更多Junit的特性

 

3.1 Annotations 

AnnotationDescription
@Test 
public void method()
该方法为test方法
@Before 
public void method()
在每个test之前执行的方法,一般用于初始化环境
@After 
public void method()
在每个test之后执行的方法,一般用于清理环境
@BeforeClass 
public void method()


TAG: annotation JUnit Junit JUNIT junit

 

评分:0

我来说两句

Open Toolbar