Android单元测试之二:本地测试
Android单元测试之二:本地测试
本地测试
本地测试( Local tests):只在本地机器 JVM 上运行,以最小化执行时间,这种单元测试不依赖于 Android 框架,或者即使有依赖,也很方便使用模拟框架来模拟依赖,以达到隔离 Android 依赖的目的,模拟框架如 google 推荐的 Mockito 。
如何进行本地测试
添加依赖
dependencies {
...
implementation 'com.android.support:appcompat-v7:26.1.0'
testImplementation 'junit:junit:4.12'
androidTestCompile 'com.android.support:support-annotations:26.1.0'
...
}
测试代码存放的位置
app/src
|-- androidTest/java(仪器化单元测试、 UI 测试)
|-- main/java(业务代码)
|-- test/java(本地单元测试)
测试
可以自己手动在相应目录创建测试类, AS 也提供了一种快捷方式:选择对应的类 -> 将光标停留在类名上 -> 按下 ALT + ENTER -> 在弹出的弹窗中选择 Create Test 。
选择 Create Test 选项之后,弹出下面框:
- Testing library: 测试库
- Class Name: 测试类名
- Superclass:超类
- Destination package:指定包
- Generate:setUp/@Before:会生成一个带 @Before 注解的 setUp() 空方法; tearDown/@After 则会生成一个带 @After 的空方法。
- Generate test methods for:选择下面框中需要测试的方法。Show inherited methods:是否显示继承的方法。
我这边只勾选了isJudgeSysmbol(userAnswer:String,correctAnswer:String)方法测试,剩下的选项都没有修改,点击了OK。
在测试文件夹中就能看到测试类了:
图片左侧的两个绿色图标在测试类写好之后就能点击运行测试。
测试通过.如图在 isJudgeSysmbol 中写入参数和正确的返回结果,测试结果通过。
测试未通过.如图在 isJudgeSysmbol 中写入参数和不正确的返回结果,测试结果未通过。
总结
本地测试比较适合一些工具类测试,不需要使用任何 Android 系统的东西,只适用于测试公共方法,比如字符处理,数据整理等这些方法。
参考文章
Android单元测试之二:本地测试的更多相关文章
- Visual Studio 单元测试之二---顺序单元测试
原文:Visual Studio 单元测试之二---顺序单元测试 此文是上一篇博文:Visual Studio 单元测试之一---普通单元测试的后续篇章.如果读者对Visual Studio的单元测试 ...
- ASP.NET Core搭建多层网站架构【3-xUnit单元测试之简单方法测试】
2020/01/28, ASP.NET Core 3.1, VS2019, xUnit 2.4.0 摘要:基于ASP.NET Core 3.1 WebApi搭建后端多层网站架构[3-xUnit单元测试 ...
- 使用VisualStudio进行单元测试之二
借着工作忙的借口,偷了两天懒,今天继续单元测试之旅.前面说了如何进行一个最简单的单元测试,这次呢就跟大家一起来熟悉一下,在visual studio中如何进行数据驱动的单元测试. 开始之前先来明确一下 ...
- Android单元测试之google官例CalculatorTest
执行测试用例类CalculatorTest 设置genymotion可见: Android Studio界面中,依次单击菜单项 View >Toolbar.即可见改工具按钮. 启动gen ...
- 单元测试之NUnit二
NUnit 分三篇文章介绍,入门者可阅读文章,有基础者直接参考官方文档.初次写博客,望大家指点. 导航: 单元测试之NUnit一 单元测试之NUnit二 单元测试之NUnit三 本文介绍常用的NUni ...
- 补习系列(8)-springboot 单元测试之道
目录 目标 一.About 单元测试 二.About Junit 三.SpringBoot-单元测试 项目依赖 测试样例 四.Mock测试 五.最后 目标 了解 单元测试的背景 了解如何 利用 spr ...
- Android自动化测试之Monkeyrunner学习笔记(一)
Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...
- [转载]单元测试之道(使用NUnit)
首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而又忐忑的心情点击界面上的 ...
- 单元测试之道(使用NUnit)
首先来看下面几个场景你是否熟悉 1.你正在开发一个系统,你不断地编码-编译-调试-编码-编译-调试……终于,你负责的功能模块从上到下全部完成且编译通过!你长出一口气,怀着激动而 又忐忑的心情点击界面上 ...
随机推荐
- spring-cloud-ribbon负载均衡组件
Ribbon简介: Spring Cloud Ribbon 是一个基于 HTTP 和 TCP 的客户端负载均衡工具,它基于 Netflix Ribbon 实现. 通过 Spring Cloud 的封装 ...
- SQL语句完整的执行顺序(01)
一.sql语句的执行步骤: 1)语法分析,分析语句的语法是否符合规范,衡量语句中各表达式的意义. 2) 语义分析,检查语句中涉及的所有数据库对象是否存在,且用户有相应的权限. 3)视图转换,将涉 ...
- 1、阿里云ECS内部机器端口被100.117.90段的ip疯狂扫描导致业务异常
故障现象: 解决方案: 1.临时解决 iptables -I INPUT -s 100.117.0.0/12 -j DROP 2.后续解决 提交工单,寻找阿里服务. 后续定位是以前配置过的SLB在搞鬼 ...
- git pull命令的用法
git pull用法: git pull命令的作用是:取回远程主机某个分支的更新,再与本地的指定分支合并. 一句话总结git pull和git fetch的区别: git pull = git fet ...
- iOS开发之获取设备类型
1.简单判断是否是iPad方法 /** 判断是不是iPad*/ + (BOOL)isiPadDevice { return UIUserInterfaceIdiomPad == [UIDevice c ...
- buaaoo_second_improvement
你不优化,我不优化,那大家就都是满分啦 (一)写在最前 电梯问题由于和实际关联比较紧密,所以实际上可以操作的空间比较多. 但第二单元的电梯,需要实现捎带:第三单元的电梯,需要实现楼层限制.人数限制.三 ...
- Redis持久化之RDB
本文及后续文章,Redis版本均是v3.2.8 上篇文章介绍了RDB的优缺点,我们先来回顾下RDB的主要原理,在某个时间点把内存中所有数据保存到磁盘文件中,这个过程既可以通过人工输入命令执行,也可以让 ...
- Ajax 的异步调用和批量修改
AJAX的异步调用的分层 有四个jsp页面,在index.jsp页面上 要在dataDiv出显示调用的的数据回显到此处,可以让showStudent2.jsp页面的数据回调到此处,$("#d ...
- HTC VIVE固定头显位置
用此方法可以限制HTC VIVE头显定位(即固定头显位置,但是视角是不固定的). UnityEngine.XR.InputTracking.disablePositionalTracking = fa ...
- CICD - Teamcity 配置之一: 数据库自动部署
数据库开发过程不是一次完成的,也是一个迭代的过程.如何快速开发和部署新的数据库对象,部署到不同的环境中,还有就是可不可以快速重建数据库对象,这里不包括数据部分. 首先从官网下载Teamcity:htt ...