在软件开发过程中,测试是一个非常重要的环节.其中单元测试可以由程序编写者来完成,在Android studio环境下可以使用Junit框架来进行单元测试.

首先, 在gradle里面添加Junit的支持:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support.constraint:constraint-layout:1.0.1'
    testCompile 'junit:junit:4.12'
}

建立一个被测试类,我选择了计算最大子数组和作为被测试类的运算法则;

package com.example.test;

public class Array {

    //获取最大子数组
    public int list(int[] list) {
        int summax = max(list);
        int i, j, k;
        for (i = 0; i < list.length; i++)
            for (j = i; j < list.length; j++) {
                int temp = 0;
                for (k = i; k <= j; k++)
                    temp += list[k];
                if (temp > summax) {
                    summax = temp;
                }
            }
        return summax;

    }

    //获取数组的最大值
    public int max(int[] list) {
        int max = list[0];
        for (int i = 0; i < list.length; i++) {
            if (max < list[i]) {
                max = list[i];
            }
        }
        return max;
    }

}

在被测试类内右击选择 GoTu再选择test,

再选择creat new test...

选中需要测试的类名list,修改测试类的名称ArrayTest

在测试类中,编写测试用例,使用assertEquals方法判断被测试类的运行是否正确,ArrayList数组的最大子数组和是-1.

package com.example.test;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class ArrayTest {
    private Array mArray;int[] ArrayList = {-2,-3,-5,-1,-9};
@Before
public void setUp() throws Exception { mArray = new Array(); } @After public void tearDown() throws Exception { } @Test public void list() throws Exception { assertEquals(-1, mArray.list(ArrayList), 0); } }

测试用例编写完成后,右击 ArrayTest方法,选中run,

如果测试通过,就显示passed

如果未通过,就显示failed,并在下方显示错误位置