美文网首页
Android Studio 单元测试详解

Android Studio 单元测试详解

作者: 程序员大耳 | 来源:发表于2020-05-14 22:07 被阅读0次

一、目的

1.1、减少模拟器运行、真机调试,提高工作效率;

1.2、减少错误,提前发现问题;

1.3、做到功能单元全面覆盖;

二、单元测试

2.1、什么是单元测试?

指对软件中的最小可测试单元进行检查和验证。

简单来说单元测试就是将一个软件功能拆分成N个最小的不可拆分的单元功能点,对单元功能点的测试就是单元测试。

2.2、单元测试有哪些?

Android中的测试一般分为:功能测试,接口测试,数据测试等;我们所说的单元测试主要是功能测试,主要用于测试功能性的需求,比如网络请求,数据存储,数据库,api,SharedPerferences,验证时间,转化格式,正则验证等。不能测试UI功能,不能测试需要硬件支持的功能(比如蓝牙,wifi等),不能测试App跳转等等。

三、单元测试类

3.1、androidTest测试类

androidTest测试类适用于需要依赖Android api的单元测试,需要连接Android设备才能进行测试。

新建的androidTest java类需要添加@RunWith(AndroidJUnit4.class)注解,类的方法如果是测试入口方法需要添加@Test注解。

public class MainActivityTest {

    private Context mTargetContext;

    @Before

    public void setUp() throws Exception {

        mTargetContext = InstrumentationRegistry.getTargetContext();

    }

    @Test

    public void onCreate() {

        try {

            ApplicationInfo applicationInfo = mTargetContext.getPackageManager().getApplicationInfo(mTargetContext.getPackageName(), PackageManager.GET_META_DATA);

            Bundle metaData = applicationInfo.metaData;

            String data = metaData.getString("com.xiaoying.TEST");

            assertEquals("1234567890", data);

        } catch (PackageManager.NameNotFoundException e) {

            e.printStackTrace();

        }

    }

}

3.2、test测试类

test测试类适用于纯java的单元测试,运行于当前设备的jvm环境中,无需Android设备即可测试。新建test java类,类的方法如果是测试入口方法需要添加@Test注解。

public class UtilsTest {

    @Before

    public void setUp() throws Exception {

    }

    @Test

    public void isEmpty() {

        assertEquals(true, Utils.isEmpty(""));

    }

}

3.3、测试类中的setUp方法与tearDown()方法

在测试类中的setUp方法,可以在启动测试前进行一些初始化,比如测试类中的变量等初始化,这个方法需要添加@Before注解。

在测试类中的tearDown方法,可以在测试后进行一些资源释放,,这个方法需要添加@After注解。

3.4、关于自动生成测试类和测试方法

在项目源码中选中需要添加单元测试的类并打开,在内容显示区域“右键”->“Go To”,在弹出窗口中选择“Test”,在弹出窗口中选择“Create New Test ......”

在接下来弹出的对话框中,勾选需要添加单元测试的方法,在这里有个“Generate”通用方法生成,可以选择setUp/@Before(启动前调用,可用于初始化)和tearDown/@After(结束后调用)

相关文章

网友评论

      本文标题:Android Studio 单元测试详解

      本文链接:https://www.haomeiwen.com/subject/fbaxohtx.html