0:
单元测试的目的就是测试一个方法的所有的可能值(换句话说:验证输入的内容是否能够得到期望的输出的结果,也就是方法的功能的覆盖测试)
继承TestCase 就可以自动进行测试了
1:创建我们要测试的类:
2:创单元测试的类:
选择以 Android 的形式来展示代码
然后找到(anroidTest)注释的文件夹,在这里创建测试类
测试的类里面的每一个测试的测试方法,都是以要测试的测试方法结尾,前面加上test,例如这里是testGetFirstTwoString()
如果测试的方法是静态的方法,可以直接使用类来调用,
如果测试的方法是类方法,非静态方法,需要创建被测试的类的对象来调用
通过assertNotNull和assertEquals()这里两个方法来判断返回的结果是否是我们想要的
完整代码:
3:运行
4: 修改运行的参数来运行 单元测试里面的某一个方法
继承TestCase 就可以自动进行测试了
1:创建我们要测试的类:
package com.example.administrator.unittestdemo;
/**
* Created by Administrator on 2016/7/25.
*/
public class UtilsClass {
/*获取一个字符串的前两个字符,
* 如果是为null 就回复空
* 如果是长度为1,就返回“长度为1”
* 如果是长度大于等于2,那么就返回前两个字符
* */
public String getFirstTwoString(String str){
String ret;
if(str==null){
return "空";
}else{
if(str.length()==1){
return "长度为1";
}else{
return str.substring(0,2);
}
}
}
public static int max(int a,int b){
return a>b?a:b;
}
}
2:创单元测试的类:
选择以 Android 的形式来展示代码
然后找到(anroidTest)注释的文件夹,在这里创建测试类
测试的类里面的每一个测试的测试方法,都是以要测试的测试方法结尾,前面加上test,例如这里是testGetFirstTwoString()
如果测试的方法是静态的方法,可以直接使用类来调用,
public void testMax(){
//max方法是static修饰的静态的方法,可以直接通过类名来调用
int max = UtilsClass.max(1, 2);
assertEquals(max,2);
}
如果测试的方法是类方法,非静态方法,需要创建被测试的类的对象来调用
public void testGetFirstTwoString(){
//getFirstTwoString是类方法不是static修饰的静态方法,所以要用对象来访问
UtilsClass utilsClass = new UtilsClass();
String result =utilsClass.getFirstTwoString(null);
assertNotNull(result);//断言不为空
result =utilsClass.getFirstTwoString("h");
assertNotNull(result);//断言不为空
assertEquals(result,"长度为1");//断言是否相等
result =utilsClass.getFirstTwoString("hello");
assertNotNull(result);//断言不为空
assertEquals(result,"he");//断言是否相等
result =utilsClass.getFirstTwoString("he");
assertNotNull(result);//断言不为空
assertEquals(result,"he");//断言是否相等
result =utilsClass.getFirstTwoString("h");
assertNotNull(result);//断言不为空
//这里会失败
assertEquals(result,"he");//断言是否相等
}
通过assertNotNull和assertEquals()这里两个方法来判断返回的结果是否是我们想要的
完整代码:
package com.example.administrator.unittestdemo;
import junit.framework.TestCase;
/**
* Created by Kodulf on 2016/7/25.
* 继承TestCase 就可以自动进行测试了
*/
public class UtilsClassTest extends TestCase{
/**
* 单元测试固定的方法命名规则:
* public void testXxxxXXX()形式
* 其中XxxXxx就是要测试的方法的名称
* 把这个名称首字母大写,一定要注意必须要以test开头
*/
public void testMax(){
//max方法是static修饰的静态的方法,可以直接通过类名来调用
int max = UtilsClass.max(1, 2);
assertEquals(max,2);
}
public void testGetFirstTwoString(){
//getFirstTwoString是类方法不是static修饰的静态方法,所以要用对象来访问
UtilsClass utilsClass = new UtilsClass();
String result =utilsClass.getFirstTwoString(null);
assertNotNull(result);//断言不为空
result =utilsClass.getFirstTwoString("h");
assertNotNull(result);//断言不为空
assertEquals(result,"长度为1");//断言是否相等
result =utilsClass.getFirstTwoString("hello");
assertNotNull(result);//断言不为空
assertEquals(result,"he");//断言是否相等
result =utilsClass.getFirstTwoString("he");
assertNotNull(result);//断言不为空
assertEquals(result,"he");//断言是否相等
result =utilsClass.getFirstTwoString("h");
assertNotNull(result);//断言不为空
//这里会失败
assertEquals(result,"he");//断言是否相等
}
}
3:运行
右击UtilClassTest
点击Create UtilClassTest
在界面中选择 All in Module,然后确定
然后在我们平时运行的列表里面旁边会多一个CryptUtilTest。
点击运行
这个是没有界面
点击下面的Message 旁边的Run
4: 修改运行的参数来运行 单元测试里面的某一个方法
点击运行按钮左边的“UtilsClassTest”
在弹出的下拉菜单中,选择,“Edit Configurations。。。”
然后再左边的列表点击Android Tests 下面的UtilsClassTest,现在右边的列表变成了UtilsClassTest运行的参数了
在Test这一栏里面,我们可以选择class,来指定类,通过Method 来指定我们需要测试运行的方法,例如这里我们可以选择testMax