AndroidStudio androidTest安卓测试 test单元测试(Junit)

 androidTest是整合测试,可以运行在设备或虚拟设备上,需要编译打包为APK在设备上运行,可以实时查看细节

test 是单元测试,运行在本地开发机上,可以脱离Android运行环境,速度快

Android Studio 测试分 androidTest 安卓测试(下图绿箭头)和 test (java测试/junit测试)(下图红箭头),我们下面的实例是test(单元测试)

AndroidStudio androidTest安卓测试 test单元测试(Junit)_第1张图片

 

=====================================================================================

androidTest

记录一次运行androidTest 测试时 Android Studio的报错和解决方法

 

错误信息

英文:

Conflict with dependency 'com.android.support:support-annotations' in project ':app'. Resolved versions for app (26.1.0) and test app (27.1.1) differ. See https://d.android.com/r/tools/test-apk-dependency-conflicts.html for details.

译文:

//在运行androidTest 测试时 的报错信息:与依赖项“com.android.support:support annotations”在项目“:app”中冲突。应用程序(26.1.0)和测试应用程序(27.1.1)的解析版本不同。

 

解决办法

在app.gradle下

android{
//下面是解决办法,添加    configurations.all{。。。。
    configurations.all{
        resolutionStrategy.force 'com.android.support:support-annotations:27.1.1'
    }
    //And do not forget to add following code, if you want to run the AndroidTest
//    defaultConfig {
//        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
//    }

 

...........

}

=====================================================================================

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

 

AndroidStudio androidTest安卓测试 test单元测试(Junit)_第2张图片

 

 

新建一个单元测试类(这个例子的类和已经创建的DateUtilsTest 不是同一个,过程相同)

 

如下图选择被测试的方法(这个例子的类和已经创建的DateUtilsTest 不是同一个,过程相同)

 

AndroidStudio androidTest安卓测试 test单元测试(Junit)_第3张图片

 

工具是Android Studio Junit4.12

你可能感兴趣的:(android)