安卓测试框架的环境搭建
测试是开发很重要的一部分。有句话说,好的应用不是开发出来的,而是测出来的。虽然作为程序员我们并不需要很精通测试,但是我们还是需要了解一下测试的基本内容。
安卓中提供了一个测试框架给我们使用。我们只需要继承这个框架就可以进行单元测试。
准备工作
新建一个安卓项目,在新建两个类,一个用于做测试框架类,一个用于演示的工具类。
演示工具类没什么,只是为了演示而已。
这里我们重点说一下测试框架类。
环境搭建:
安卓中搭建测试框架类非常简单,只需要新建一个类,然后继承AndroidTestCase类就可以了。然后再清单文件中加入指令集和测试类库(这个我们看代码就可以了。)
运行方法:
所谓单元测试,就是要测试某一个方法你不用运行整个程序,只需要选择该方法,邮件 Run as Android Junit Test就可以运行。如果运行没问题,Junit框会显示绿色。如果有Bug,就会显示红色。
如图:
下面我们看看代码吧
首先清单文件
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.junit" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="21" /> <!-- 添加单元测试框架必须添加instrumentation这个指令集 这条属性表明用那个指令集,事实上也只有一个 android:name="android.test.InstrumentationTestRunner" 这条表明要测试那个包下的功能,注意,一个测试框架定义在哪里是没关系的, 测试哪里,靠的是下面的包定义,注意,下面还需要添加类库哦 android:targetPackage="com.example.junit" --> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.junit" > </instrumentation> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 表明要用那个类库测试,事实上只有一个 --> <uses-library android:name="android.test.runner" > </uses-library> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
JAVA文件
package com.example.junit; /* * AndroidTestCase是用于做安卓单元测试的类。 * 所有单元测试,就是可以不用运行整个程序,单独去测试某个方法。 * 安卓通过继承AndroidTestCase就可以实现这个功能。 * 通过右键某个方法,run as Android Junit Test就可以运行 * * 注意,运行测试框架要在清单文件里面添加指令集和指定所使用的类库 * * */ import android.test.AndroidTestCase; public class MyTestCase extends AndroidTestCase{ public void test(){ Test.add(2, 6); //assertEquals()断言,第一个参数表示期望值,第二个参数表运算值 assertEquals(7, 8); } }
被测试类
package com.example.junit; public class Test { public static int add(int a,int b){ return a+b; } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现