软件测试从业者,立志做出一番事业,2015加油~!
发布新日志
-
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);
}
}
查看(455)
评论(1)
收藏
分享
管理
-
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注释它。
查看(764)
评论(0)
收藏
分享
管理