Junit4参数化测试

关键字:  junit , 参数化

转自:http://ttitfly.iteye.com/blog/178496

JUnit4中参数化测试要点: 
1. 测试类必须由Parameterized测试运行器修饰 
2. 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 
    1)该方法必须由Parameters注解修饰 
    2)该方法必须为public static的 
    3)该方法必须返回Collection类型 
    4)该方法的名字不做要求 
    5)该方法没有参数 


如: 
测试方法: 

源码 打印 ?
  1. public int add(int a,int b){  
  2.     return a+b;  
  3. }  

测试代码:

源码 打印 ?
  1. package org.test;    
  2.     
  3. import java.util.Arrays;    
  4. import java.util.Collection;    
  5.     
  6. import org.junit.Assert;    
  7. import org.junit.Test;    
  8. import org.junit.runner.RunWith;    
  9. import org.junit.runners.Parameterized;    
  10. import org.junit.runners.Parameterized.Parameters;    
  11. /**  
  12.  * 参数化测试的类必须有Parameterized测试运行器修饰  
  13.  *  
  14.  */    
  15. @RunWith(Parameterized.class)    
  16. public class AddTest3 {    
  17.     
  18.     private int input1;    
  19.     private int input2;    
  20.     private int expected;    
  21.         
  22.     /**  
  23.      * 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求:  
  24.   
  25.          1)该方法必须由Parameters注解修饰  
  26.          2)该方法必须为public static的  
  27.          3)该方法必须返回Collection类型  
  28.          4)该方法的名字不做要求  
  29.          5)该方法没有参数  
  30.      * @return  
  31.      */    
  32.     @Parameters    
  33.     @SuppressWarnings("unchecked")    
  34.     public static Collection prepareData(){    
  35.         Object [][] object = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}};    
  36.         return Arrays.asList(object);    
  37.     }    
  38.         
  39.     public AddTest3(int input1,int input2,int expected){    
  40.         this.input1 = input1;    
  41.         this.input2 = input2;    
  42.         this.expected = expected;    
  43.     }    
  44.     @Test    
  45.     public void testAdd(){    
  46.         Add add = new Add();    
  47.         int result = add.add(input1, input2);    
  48.         Assert.assertEquals(expected,result);    
  49.     }    
  50.         
  51. }   

你可能感兴趣的:(Java相关)