JUint4 test的一个实例

基本步骤:

假设待测试类是:

{CSDN:CODE:347630}


1.在相对应的test文件夹下新建测试类,测试类名是在待测类名前加Test
测试如果需要系统加载JNI库:
在测试类中的第一句:
static{
    System.loadLibrary("不带拓展名的库名");
}
这里还有个load函数,此处不多讲,感兴趣可以Google。

推荐使用的是带参数测试,说在类申明前加@RunWith(value=Parameterized.class)表示带参数测试。

关于参数的确定:
在测试类中创建一个static的内部类包含所有的参数,并实现初始化。
关于参数的确定,无非就是出入参和一些状态变量。这里入参是一个数组,出参是int型的最值,一起三个参数。
public class MyClass1Param {

    public int[] m_arr;
    public int m_min;
    public int m_max;
    
    public MyClass1Param(int[] arr,int min,int max)
    {
        this.m_arr = arr;
        this.m_min = min;
        this.m_max = max;
    }
    
}

测试类中私有一个这样的参数作为成员:private MyClass1Param m_param = null;
至于这个参数从哪里来?
来自于我们要设置的参数arraylist中一项,测试类会根据arraylist中对象的数目n进行n次调用,每一次调用其中的一项初始化测试类,一个@Before + @Test + @After的流程。

2.定义参数组
为1中要使用的n个参数进行定义,它们在@Parameters中定义,在静态方法data()中以list方式返回
public static Colletion data(){}.
在data函数中,params的申明如下:
ArrayList params = new ArrayList(),这样的ArrayList中存放的是一个对象数组,当然数组中的元素个数是用户自定的。
添加方法:params.add(new Object[]{param00,param01,....,param0(i-1)});每一个可以添加i个不同类型的对象到这个arraylist中。
最后返回params。

一般要将@Parameters放在所有其他的@注释代码之前。
@Parameters
    public static Collection data()
    {
        ArrayList params = new ArrayList();
        
        int a0[] = new int[]{1,2,3,4,5,6,7};
        MyClass1Param param0 = new MyClass1Param(a0,1,7);
        params.add(new Object[]{param0});
        
        int a1[] = new int[]{-1,-2,-3,-4,-5,-6,-7};
        MyClass1Param param1 = new MyClass1Param(a1,-7,-1);
        params.add(new Object[]{param1});
        
        int a2[] = new int[]{-3,-2,-1,0,1,2,3};
        MyClass1Param param2 = new MyClass1Param(a2,-3,3);
        params.add(new Object[]{param2});
        
        return params;
    }

3.相应定义其他的@注释开头的代码
虽然测试类中的调用顺序已经由@注释所决定了,但是编写时为了一一对应,一般首先编写顺序:
@BeforeClass
@AfterClass
@Before    通过参数初始化测试类中成员的好时机
@After    释放掉测试类中的成员
@Test    测试代码

综合的代码如下:

TestMyClass1.java:

{CSDN:CODE:347639}


你可能感兴趣的:(JAVA)