androidTest是整合测试,可以运行在设备或虚拟设备上,需要编译打包为APK在设备上运行,可以实时查看细节
test 是单元测试,运行在本地开发机上,可以脱离Android运行环境,速度快
Android Studio 测试分 androidTest 安卓测试(下图绿箭头)和 test (java测试/junit测试)(下图红箭头),我们下面的实例是test(单元测试)
JUNIT 4.12 单元测试版本
被测试类(被测试的方法 timeStampToString(int timeStamp))
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
public class DateUtils {
/**
* 时间戳转换成日期(被测试的方法)
* @param timeStamp 要求是10位 单位为秒的时间戳
* @return
*/
public static String timeStampToString(int timeStamp){
long temp = (long) timeStamp*1000;//将秒转换成毫秒
Timestamp ts = new Timestamp(temp);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString=null;
dateString = simpleDateFormat.format(ts);
return dateString;
}
}
单元测试类
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import static org.hamcrest.core.IsNull.nullValue;
import static org.junit.Assert.*;
public class DateUtilsTest {
@Before//注解
public void setUp() throws Exception {
System.out.println("测试开始执行的代码在这里执行,可做初始化操作");
}
@After
public void tearDown() throws Exception {
System.out.println("测试结束后的执行代码在这里执行,可做释放资源操作");
}
/**
* 单元测试 测试 DateUtils.timeStampToString这个时间戳转换成日期时间字符串的方法是否通过
*/
@Test
public void timeStampToString() {
//与预期盼望的expected结果相等测试方法,即测试DateUtils.timeStampToString(1544770985) 方法运算后得到的结果是不是为字符串的2018-12-14 15:03:05
//断言传入的预期值与实际值是相等的
assertEquals("2018-12-14 15:03:05",DateUtils.timeStampToString(1544770985));//2018-12-14 15:03:05
//与非预期盼望的结果不一致测试方法,结果果然是不一致,所以测试可以通过
//断言传入的预期值与实际值是不相等的
assertNotEquals("2018-12-14 15:03:06",DateUtils.timeStampToString(1544770985));
}
}
单元测试类的自动生成方法,在需要测试的类上点鼠标右键--Go To -- Test
新建一个单元测试类(这个例子的类和已经创建的DateUtilsTest
不是同一个,过程相同)
如下图选择被测试的方法(这个例子的类和已经创建的DateUtilsTest
不是同一个,过程相同)
工具是Android Studio Junit4.12