Android开发中的单元测试-初级教程(01)

掌握Android单元测试:从理论到实践 本文探讨了Android开发者在单元测试方面的基础知识,包括测试类型的选择、断言方法的应用、浮点数精度问题的处理以及测试方法的实现。文章详细分析了如何利用JUnit和Hamcrest框架进行有效测试,以及如何使用Mockito框架来模拟依赖项,最终通过编码挑战和家庭作业加深对单元测试的理解。 阅读详情

这里使用的环境是:Eclipse / Android / JUnit3,没办法,我试过了,Android目前貌似应该还无法支持JUnit4,所有的Test Case都必须继承于AndroidTestCase。好吧,反正JUnit 3也还比较容易理解。哭


新建一个Demo工程,注意同时建立一个AndroidTest Project(当然这个Test Project你也可以稍后建立)。

工程中添加我们的测试对象,并完成相应用来测试的方法:

package com.freesoft.demo.utils;

/**
 * 被测试数学工具类
 * @author Sandy
 *
 */
public class MathUtil {

	/**
	 * 加法方法
	 * @param num1, 操作数1
	 * @param num2, 操作数2
	 * @return 返回两数相加值
	 */
	public int add(int num1, int num2) {
		return num1 + num2;
	}
	
	/**
	 * 减法方法
	 * @param num1, 操作数1
	 * @param num2, 操作数2
	 * @return 返回两数相减值
	 */
	public int sub(int num1, int num2) {
		return num1 - num2;
	}
	
	/**
	 * 乘法方法
	 * @param num1, 操作数1
	 * @param num2, 操作数2
	 * @return 返回两数相乘值
	 */
	public int mul(int num1, int num2) {
		return num1 * num2;
	}
	
	/**
	 * 除法方法
	 * @param num1, 操作数1
	 * @param num2, 操作数2
	 * @return 返回两数相除值
	 * @throws Exception 抛出的异常
	 */
	public int div(int num1, int num2) throws ArithmeticException {
		int result = 0;
		try {
			result = num1 / num2;
		} catch (ArithmeticException e) {
			throw e;
		};
		return result;
	}
	
	/**
	 * 取余方法
	 * @param num1, 操作数1
	 * @param num2, 操作数2
	 * @return 返回两数取余值
	 */
	public int mod(int num1, int num2) {
		return num1 % num2;
	}
}


之后,在我们的Test Project的Properties中,add library:JUnit,并选择JUnit3。

之后请检查Test Project中manifest.xml文件的Application小节中是否存在如下字段:

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" >
        <uses-library android:name="android.test.runner" />
    </application>

之后右键需要测试的MathUtil类,选择new一个TestCase,并选择Source Folder到Test Project,同时选择是否需要setUp和tearDown方法等选项。


此时测试工具类如下:

/**
 * 
 */
package com.freesoft.demo.utils;

import android.test.AndroidTestCase;

/**
 * @author Sandy
 *
 */
public class MathUtilTest extends AndroidTestCase {

	/* (non-Javadoc)
	 * @see android.test.AndroidTestCase#setUp()
	 */
	protected void setUp() throws Exception {
		super.setUp();
	}

	/* (non-Javadoc)
	 * @see android.test.AndroidTestCase#tearDown()
	 */
	protected void tearDown() throws Exception {
		super.tearDown();
	}

	/**
	 * Test method for {@link com.freesoft.demo.utils.MathUtil#add(int, int)}.
	 */
	public void testAdd() {
		fail("Not yet implemented");
	}

	/**
	 * Test method for {@link com.freesoft.demo.utils.MathUtil#sub(int, int)}.
	 */
	public void testSub() {
		fail("Not yet implemented");
	}

	/**
	 * Test method for {@link com.freesoft.demo.utils.MathUtil#mul(int, int)}.
	 */
	public void testMul() {
		fail("Not yet implemented");
	}

	/**
	 * Test method for {@link com.freesoft.demo.utils.MathUtil#div(int, int)}.
	 */
	public void testDiv() {
		fail("Not yet implemented");
	}

	/**
	 * Test method for {@link com.freesoft.demo.utils.MathUtil#mod(int, int)}.
	 */
	public void testMod() {
		fail("Not yet implemented");
	}

}


右键工具类,选择Run as Android JUnit Test,运行正常,可以看到


至此,一个简单的Unit Test搞定。











储能BMS三级架构解析:从模组到堆的管理与控制 本文深入解析了储能电池管理系统(BMS)的核心三级架构,即电池模组管理层(BMU)、电池簇管理层(BCMU)和电池堆管理层(BAMS)。文章详细阐述了各级的职能分工与协同机制,从底层数据采集、均衡管理,到中层信息汇总与安全控制,再到顶层的系统总控与对外通信,揭示了该架构如何实现大规模储能电池的精细化、安全与高效管理。 阅读详情

相关推荐

使用VLC库实现视频播放器(WPF版)

使用wpf制作一个视频播放器 一、 LibVLCSharp介绍 LibVLCSharp是基于VideoLAN的LibVLC库的.NET平台的跨平台音频和视频API。它提供了一个全面的多媒体API,可以跨移动、服务器和桌面使用,以呈现视频和输出音频。支持Mono、.NET Framework和.NET核心运行时。在vs工具中,只需要安装截图中得两个nuget包。 二、视频播放器的实现 视频播放器的实现需要用到两个比较nuget包中提供的类,MediaPlayer类。MediaPlayer类型用于控

cangqiongxiaoye的博客 1万+

安卓项目如何做单元测试

本文介绍: 1.安卓单元测试的基本介绍; 2.简单的单元测试例子; 3.如何基于现有项目做单元测试; 4.项目常见问题以及如何解决

分享+记录 4343

系统回溯信息:遇到严重错误。已将回溯写入...PTC... raceback.log请将其发送给|技术支持|。

一、问题分析 这种问题一旦遇上了,如果忘了保存,直接心态爆炸。 该问题一般是显卡驱动的问题。ProE/Creo对显卡的基本要求是:支持Open_GL的3D显卡,分辨率为1024×768像素以上,推荐使用64位独立显卡,显存512MB以上。如若显卡性能太低,打开软件后易自动退出。 二、解决方法 <1>有一个非常简单的方法是:在config.pro文件中,改变图形配置graphics为” win32_gdi”而不是默认的“...

幕光倾城的博客 2万+

Android 单元测试,从小白到入门开始

1 引言 1.1 背景 随着 Android 应用越来越壮大,对应代码量显著增加,代码逻辑也日趋复杂,此时需要采取一定的行动去保证代码质量,减少逻辑漏洞等,于是严格地执行单元测试编写任务,将单元测试落实到平常开发和维护任务当中去,就是很重要的一环,不可忽视。 然而,很多应用开发者之前并未编写过单元测试代码,那么如果有一篇通俗易懂并带有操作步骤的文章,能帮助应用开发者完成从单元测试小白到入门的过渡,就再好不过了,于是本文就是在此情况写就的,如有不好之处,请多多包涵,谢谢...

让学习编程变得生动有趣~ 1万+

基于STM32环境温湿度监测系统设计

基于STM32环境温湿度监测系统设计1. 实验目的2. 任务和要求3. proteus仿真图4. 实验代码 1. 实验目的 (1) 掌握使用 KEIL MDK5 进行软件开发的具体流程; (2) 掌握硬件电路的设计方法; (3) 掌握 STM32 微控制器的程序设计及代码编写方法。 2. 任务和要求 (1)在 STM32F103 平台下,通过温度传感器 DS18B20 和湿度传感器 DHT11 实现环境温湿度信息的采集; (2)将温度传感器和湿度传感器所采集的数据在 LCD 液晶屏幕上显示出来,超

唯一的博客 2万+

NLP实践——利用自己的语料进行Mask Language Model预训练

#!/usr/bin/env python # coding: utf-8 # In[1]: import os import json import copy from tqdm.notebook import tqdm import torch from torch.optim import AdamW from torch.utils.data import DataLoader, Dataset from transformers import BertForMaskedLM, BertTo

weixin_44826203的博客 1万+

Android单元测试全解

  自动化测试麻烦吗?说实在,麻烦!有一定的学习成本。但是,自动化测试能节省时间来打游戏!!

to_perfect的博客 1万+

STM32学习笔记【江科协】【4-2】OLED显示屏

可以注意到接电源的GND和VCC同时和PB6、PB7号口连接,我们可以直接不初始化这两个引脚解决,因为STM32的引脚上电后,如果不初始化,默认是浮空输入的模式,在这个模式下,引脚不会输出电平,所以不会有什么影响,或者直接给PB6口输出低电平,PB7口输出高电平,用GPIO口直接给OLED供电,这个也是没问题的,因为OLED的功率很小这个也是可以驱动的,不过用GPIO口供电不是很规范,实际项目还是用电源供电。然后点击这里放大镜里面带d的图标,进入调试模式,这个界面里,

m0_74651303的博客 1595

Android单元测试使用

单元测试是确保Android应用程序稳定和高质量的重要工具。通过使用JUnit和Mockito,可以轻松地编写和运行单元测试。集成测试则允许在真实的Android环境中验证应用的功能。结合这两种测试方法,可以全面地覆盖应用的各个方面,提高代码的可靠性和可维护性。---- 文章由 ChatGPT 生成。

阿饱同学 1023

【论文复现】水下单光子激光雷达设计 Sequential Multimodal Underwater Single

针对对慢速小水下目标进行远距离、高分辨率重建的需求,单光子激光雷达(LiDAR)目标重建技术的研究正在进行。本文报告了一种基于时空序列融合的顺序多模态水下单光子 LiDAR 自适应目标重建算法,该算法具有强大的信息提取和噪声过滤能力,能够从复杂的回波光子计数和空间像素关系中重建目标的深度和反射强度信息。该方法包括三个步骤:数据预处理、序列优化极值推断滤波以及图像优化协同变分策略,以实现复杂水下环境下的高质量目标重建。

u012133341的博客 292

作为一名爬虫人如何实现千万级数据爬取?

爬虫门槛不高,高就高在往后余生的每一次实操都随时会让你崩溃!Bro

吴秋霖的博客 1万+

Android下单元测试实践——测试框架简介

在模块的test路径下编写测试案例。在类中使用@Test注解,就可以告诉Junit这个方法是测试方式。同时使用assert*方法,可以调用Junit进行结果的验证。

人生不怕起点低,就怕没追求 1298

【网络与爬虫 49】突破WAF防线:Web应用防火墙绕过实战攻略

本文深入探讨Web应用防火墙(WAF)的工作原理与绕过技术,从基础的编码变换到高级的协议层攻击,通过实战案例和代码演示,帮助安全研究者和渗透测试人员理解现代WAF防护机制并掌握合规的绕过方法。内容涵盖SQL注入、XSS、文件上传等攻击向量的WAF绕过技术,适合网络安全从业者和爬虫开发者学习参考。

熵数实验室 1846

Android开发中的单元测试-初级教程(03)

之前的同一系列文章Android开发中的单元测试-初级教程(01)、Android开发中的单元测试-初级教程(02)讲述了Android中使用JUnit实现单元测试的例子,那么我们现在需要通过回顾知识点来理解我们的例子(注意,这里相当多的概念引用到了百度百科当中的描述): 单元测试 单元测试是在软件开发过程中要进行的最低级别的测试活动,在单元测试活动中,软件的独立单元将在与程序的其他部分相

「行到水穷处,坐看云起时」 1740

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Android开发中的单元测试-初级教程(02)

上篇文章在Android开发中的单元测试-初级教程(01)中我让工具类继承自AndroidTestCase,因为Android JUnit Test目前还不支持JUnit 4。 本节我们使用TestSuite,我们新建一个TestSuite: package com.freesoft.demo.utils; import junit.framework.TestSuite

「行到水穷处,坐看云起时」 1167

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

android驱动测试,单元测试-Android测试驱动开发

单元测试-Android测试驱动开发我在制作Android应用程序方面具有丰富的经验。 对于我的新项目,我们决定进行测试驱动开发(TDD)。 我一直忙于在Robotium上进行用户场景测试,并且效果很好,看起来也很容易。对于单元测试,我尝试使用(MockContext Android类)模拟Context,但是无法这样做。 我浏览了该博客[http://sites.google.com/site/...

weixin_28969555的博客 341

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Android APP完整基础教程(01)开发环境简介

该系列文章主要基于AndroidQ平台,主要介绍Android应用基础开发相关知识。主要针对安卓应用开发路径的完整解读 和 coding练习内容的解读。 1 Android 发展历史 1.1 Android 历史 2005年 Google收购了成立仅22个月的高科技企业Android公司。 2007年 Google正式向外界展示了这款名为Android的操作系统,建立联盟(34家手机制造商、软件开发商、电信运营商以及芯片制造商),联盟将支持谷歌发布的手机操作系统以及应用软件,将共同开发Android

wangdsh的博客 3020

使用Junit对Android应用进行单元测试

使用Junit对Android应用进行单元测试 在本文中,你将会学习到如何在Eclipse中创建Android JUnit的单元测试工程以及在不同的条件下创建及运行自动测试用例。  准备工作   本文假设读者已经有一定的Android基础知识,并且已经安装了Eclipse和Android SDK等开发工具。本文将指导读者如何将Android Junit框架应用到Android应用中

die_angle的专栏 781

(Android)安卓性能测试详解

private dirty : 非共享,又不能被换页出去的内存(比如linux系统中为了提高分配内存速度而缓冲的小对象,即使你的进程已经退出,该内存也不会被释放)TotalTime表示新应用启动的耗时,包括新进程的启动和 Activity 的启动,但不包括前一个应用Activity pause 的耗时。Monkey 主要用于Android 的随机压力测试,是一个自动的压力测试小工具,主要目的就是为了测试android app是否会Crash(崩溃).因此启动时长是一项比较靠前的性能指标。

chengxuyuznguoke的博客 1054

最全的Android单元测试教程

转·原文链接:ChrisZou/android-unit-testing-tutorial Android单元测试: 首先,从是什么开始 Android单元测试(二):再来谈谈为什么 Android单元测试(三):JUnit单元测试框架的使用 Android单元测试在蘑菇街支付金融部门的实践 Android单元测试(四):Mock以及Mockito的使用 Android单元测试(五):依赖注入,...

weixin_34336526的博客 683

android studio单元测试

android studio默认会在src目录下创建androidTest这个文件夹,显然它是做测试用的。今天用它做了一次单元测试,效果不错,把步骤记录下来。测试内容  CommonUtils类下的moneyFormat2方法,/** * 绝对值小于10000元返回元为单位的价格,大于等于10000返回万元为单位的价格 **/ public static String moneyFormat2(

wenping的专栏 883

Android MVVM 架构与单元测试项目常见问题解决方案

Android MVVM 架构与单元测试项目常见问题解决方案 1. 项目基础介绍和主要编程语言 该项目是一个开源项目,旨在帮助开发者学习和掌握基于 Android Architecture Components 的 MVVM(Model-View-ViewModel)架构和单元测试。项目通过一系列示例,展示了如何在 Android 应用中实现数据绑定、ViewModel、LiveData 以及各种...

gitblog_00737的博客 519

ju 单元测试_junit4单元测试

java中Junit单元测试Junit元测试单元测试(junit testing),是指对软件中的最小可测试单元进行检查和验证。Java里单元指一个类。JUnit ,是一个开源的Java单元测试框架,是 Java的标准单元测试库,是非常重要第三方 Java 库,由 Kent Beck 和 Erich Gamma 开发。...文章tony~tian2013-01-171574浏览量单元测试框架怎么搭...

weixin_39947396的博客 381

Android 7.0源码环境单元测试

“单元测试”测试模块内部方法或类。“集成测试”测试模块间的调用。 Android官方测试文档:https://developer.android.com/training/testing/index.html Android studio 测试文档:https://developer.android.com/studio/test Android单元测试内容: 有复杂逻辑的类: 1、算法类。如字符...

BIG的专栏 788

单元测试(01) 调试过程中遇到 Method isEmpty in android.text.TextUtils not mocked

异常信息 java.lang.RuntimeException: Method isEmpty in android.text.TextUtils not mocked. See http://g.co/androidstudio/not-mocked for details. at android.text.TextUtils.isEmpty(TextUtils.java) at com.exa...

ZPCrobot的博客 2539

Android 单元测试

Android单元测试: 首先,从是什么开始 有一系列的文章 http://chriszou.com/2016/04/13/android-unit-testing-start-from-what.html 用Robolectric来做Android unit testing http://chriszou.com/2016/04/13/android-unit-testing-start-

529
上一篇: Android Build出来的包提示未签名(INSTALL_PARSE_FAILED_NO_CERTIFICATES)
下一篇: Android开发中的单元测试-初级教程(02)
Soloman
博客等级 码龄25年 171粉丝 159原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值