1、测试套件
当我们需要测试的类比较多时,为了方便测试,我们可以使用测试套件,通过测试套件类,可以一次性测试所有的测试类。
1.1测试套件就是组织测试类一起运行的
1.2如何创建一个测试套件?
写一个作为测试套件的入口类,这个类里不包含其它的方法
使用@RunWith注解更改测试运行器为Suite.class
将要测试的类作为数组传入到Suite.SuiteClasses({})
1.3例子:
代码块:
package util;
import static org.junit.Assert.*;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
@RunWith(Suite.class)
@Suite.SuiteClasses({CalculateTest.class,errorTest.class})
public class SuiteTest {
}
结果:
2、参数化设置
若要对同一个方法进行多组数据测试,则需要用到参数化。
2.1如何设置参数化?
①.更改默认的测试运行器为RunWith(Parameterized.class)
②.声明变量来存放预期值和结果值
③.声明一个返回值为Collection的公共静态方法,并使用@Parameters进行修饰
④.为测试类声明一个带有参数的公共构造函数,并在其中为之声明变量赋值
2.2代码:
package util;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class ParameterTest {
int expected=0;//设置一个预期值变量
/*
* 设置两个输入值变量
*/
int input1 = 0;
int input2 = 0;
/*
* 通过一个数组存放多组测试数据
* 创建一个返回值为Collection的公共静态方法
*/
@Parameters
public static Collection<Object[]>t(){
return Arrays.asList(new Object[][]{
{3,1,2},
{4,2,2}
});
}
/*
* 创建一个构造方法,对变量进行复制
*/
public ParameterTest(int expected,int input1,int input2){
this.expected = expected;
this.input1 = input1;
this.input2 = input2;
}
/*
* 测试加法
*/
@Test
public void testAdd(){
assertEquals(expected,new Calculate().add(input1, input2));
}
}
2.3结果: