软件测试从业者,立志做出一番事业,2015加油~!

发布新日志

  • Junit4 参数化 【转】

    2012-04-12 14:52:45

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


    如: 
    测试方法: 

    public int add(int a,int b){
    	return a+b;
    }
    

    测试代码:

    package org.test;  
      
    import java.util.Arrays;  
    import java.util.Collection;  
      
    import org.junit.Assert;  
    import org.junit.Test;  
    import org.junit.runner.RunWith;  
    import org.junit.runners.Parameterized;  
    import org.junit.runners.Parameterized.Parameters;  
    /** 
     * 参数化测试的类必须有Parameterized测试运行器修饰 
     * 
     */  
    @RunWith(Parameterized.class)  
    public class AddTest3 {  
      
        private int input1;  
        private int input2;  
        private int expected;  
          
        /** 
         * 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 
     
             1)该方法必须由Parameters注解修饰 
             2)该方法必须为public static的 
             3)该方法必须返回Collection类型 
             4)该方法的名字不做要求 
             5)该方法没有参数 
         * @return 
         */  
        @Parameters  
        @SuppressWarnings("unchecked")  
        public static Collection prepareData(){  
            Object [][] bject = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}};  
            return Arrays.asList(object);  
        }  
          
        public AddTest3(int input1,int input2,int expected){  
            this.input1 = input1;  
            this.input2 = input2;  
            this.expected = expected;  
        }  
        @Test  
        public void testAdd(){  
            Add add = new Add();  
            int result = add.add(input1, input2);  
            Assert.assertEquals(expected,result);  
        }  
          
    } 
  • Junit4 与Jnuint3 的区别

    2012-04-12 10:19:06

    下面通过和JUnit3的特性进行比较来总结JUnit的特性:
    (1)必须引入类TestCase(import junit.framwork.Test)
    -》Junit4 必须引入类Test(import org.junit.Test),必须引入类(import static org.junit.Assert.*)
    (2)必须继承类TestCase(class BaseClassTest extends TestCase)
    -》
    Junit4 不需要

    (3)测试方法必须以test开头(public void testMethod())
    -》
    Junit4 不需要,但是类开始的时候要标记@Test

    (4)通过assert*方法来判断结果(assertTure(baseClass.method().equals("test.BaseClass.class")))

    从上面的对比,可以看出JUnit4和JUnit3的区别在于:
    去掉与类TestCase的偶联性,利用标签(@Test)对TestCase触发。

    -------------------------------

    setUp和TearDown
    JUnit3测试运行程序会在运行每个测试之前自动调用setUp()方法。该方法一般会初始化字段,打开日志记录,重置环境变量,等等。

    在JUnit4中,仍然可以在每个测试方法运行之前初始化字段和配置环境。然而,完成这些操作的方法不再需要叫setUp(),只要用@Before注释来指示即可。

    在JUnit3中,使用tearDown()方法。

    对于JUnit4,可以给它取一个更自然的名称,并用@After注释它。

Open Toolbar