在AndroidStudio中使用单元测试
1. 前言
2. 添加单元测试支持
2.1 添加单元测试依赖包
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
- testImplementation-引入的依赖是java unit单元测试,是运行在当前电脑的jvm上的单元测试;
- androidTestImplementation-引入的依赖是Android单元测试,是运行在Android环境的单元测试。
2.2 添加测试代码目录
- androidTest/java(Android单元测试,运行在当前电脑的jvm上的单元测试,执行测试的时候需要Android连接设备,速度比较慢,适合需要调用Android api的单元测试)
- test/java(JUnit单元测试,用来放不需要Android依赖的单元测试类,运行在当前电脑的jvm上的单元测试,速度快,适合只是对java代码功能进行单元测试)
2 添加单元测试类
2.1 手动编写单元测试类
2.1.1 androidTest测试类
package com.xiaoying.untitestdemo; import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.support.test.InstrumentationRegistry; import org.junit.Before;
import org.junit.Test; import static org.junit.Assert.assertEquals; /**
* Created by yinglovezhuzhu@gmail.com on 2018/5/13.
*/
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("", data);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
}
}
2.1.2 test测试类
package com.xiaoying.untitestdemo; import org.junit.Before;
import org.junit.Test; import static org.junit.Assert.*; /**
* Created by yinglovezhuzhu@gmail.com on 2018/5/13.
*/
public class UtilsTest { @Before
public void setUp() throws Exception { } @Test
public void isEmpty() { assertEquals(true, Utils.isEmpty(""));
}
}
- 上面的示例代码中可以直接使用assertEquals,是因为使用了静态import方法引入了相应的包(import static org.junit.Assert.*;)
- 根据测试的功能合理使用androidTest和test,提高单元测试效率。
2.2 自动生成测试类和测试方法
3. 运行单元测试
3.1 运行单个测试方法
3.2 批量运行测试方法(有些情况下可能会无法实现)
在AndroidStudio中使用单元测试的更多相关文章
- Visual Studio中UnitTesting单元测试模板代码生成
在软件研发过程中,单元测试的重要性直接影响软件质量.经验表明一个尽责的单元测试方法将会在软件开发的某个阶段发现很多的Bug,并且修改它们的成本也很低.在软件开发的后期阶段,Bug的发 ...
- AndroidStudio中activity实现去掉标题栏
1.在代码中实现 this.requestWindowFeature(Window.FEATURE_NO_TITLE) 这段代码需要放在setContentView()前面 2.设置在Manifest ...
- 真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合
真正意义上的spring环境中的单元测试方案spring-test与mokito完美结合 博客分类: java 测试 单元测试SpringCC++C# 一.要解决的问题: spring环境中 ...
- 在Android中进行单元测试遇到的问题
问题1.Cannot connect to VM socket closed 在使用JUnit进行测试的时候,遇到这个问题.网上的解释是:使用Eclipse对Java代码进行调试,无论是远程JVM还 ...
- androidStudio中如何加载字体资源?
在android中字体的格式总是不能尽善尽美的显示出来 , 于是要求我们使用一些有美感的字体,加载的方式(就像HTML的字体一样),我们需要通过加载字体的方式来使用android中不曾提供的字体; ...
- AndroidStudio中 R文件缺失的办法
AndroidStudio中 R文件缺失 找不到R文件的原因有如下两类: 1:IDE或代码问题,非个人原因: 2:个人误操作导致IDE不予提示R文件: 下面是解决办法: 第一种 ①首先确保资源文件是否 ...
- Windows下AndroidStudio 中使用Git(AndroidStudio项目于GitHub关联)
前提条件 : 1. 安装 Git 客户端 下载链接 2. 有 GitHub 账号 (假设你已经有了一些git基础, 如果还一点都不会, 请去找其他加成学习) AndroidStudio项目发布到Git ...
- 在Android Studio中进行单元测试和UI测试
本篇教程翻译自Google I/O 2015中关于测试的codelab,掌握科学上网的同学请点击这里阅读:Unit and UI Testing in Android Studio.能力有限,如有翻译 ...
- Visual Studio 中的单元测试 UNIT TEST
原文:Visual Studio 中的单元测试 UNIT TEST 注:本文系作者原创,可随意转载,但请注明出处.如实在不愿注明可留空,强烈反对更改原创出处.TDD(Test-Driven Devel ...
随机推荐
- Java秒杀实战 (七)安全优化
转自:https://blog.csdn.net/qq_41305266/article/details/81174782 一.隐藏秒杀地址 思路:秒杀开始前,先去请求接口获取秒杀地址 1.接口改造, ...
- Spring7大模块
Spring 框架是一个分层架构,由 7 个定义良好的模块组成.Spring 模块构建在核心容器之上,核心容器定义了创建.配置和管理 bean 的方式,组成 Spring 框架的每个模块(或组件)都可 ...
- linux centos常用命令
mkdir 创建文件夹 -Z:设置安全上下文,当使用SELinux时有效: -m<目标属性>或--mode<目标属性>建立目录的同时设置目录的权限: -p或--parents ...
- Python3.5环境安装及使用 Speech问题解决(转)
修改speech.py line59 修改import thread,改成import threading line157 修改print prompt,改成print(prompt) 对最后的函数_ ...
- java 值传递还是引用传递
首先看一下这篇文章 -- 跳 这篇文章就进行了大致的介绍,以及一些简单的例子,但是还缺少一个关键的例子: public class QQ { public static void main(Strin ...
- PHP获取mysql数据表的字段名称及详细属性
SHOW DATABASES //列出 MySQL Server 数据库. SHOW TABLES [FROM db_name] //列出数据库数据表. SHOW CREATE TABLES tbl_ ...
- WebRTC基于GCC的拥塞控制算法[转载]
实时流媒体应用的最大特点是实时性,而延迟是实时性的最大敌人.从媒体收发端来讲,媒体数据的处理速度是造成延迟的重要原因:而从传输角度来讲,网络拥塞则是造成延迟的最主要原因.网络拥塞可能造成数据包丢失,也 ...
- Eclipse创建Servers没有Apache选项
help->install new software加入网址是http://download.eclipse.org/releases/Neon,最后一个是你eclipse的版本.得到一系列的插 ...
- MySQL分组查询,查询出某一个字段的最新记录
直接上案例...... 案例: 同一个表中,只想需要A.B.C的最新记录 第一种方案: 应该还很多方法......(暂时先这样.....)
- SPI使用笔记ADS1259+AD5676
SPI的通信速率通常比较快.目前用到的ADS1259芯片,可以达到2-4MHz,可能可以更加快.一般spi都是从慢速开始调试,但是具体到某个芯片,应该核对芯片时序图,比如ti的ds1259,数据手册上 ...