我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Android Studio单元测试入门

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Android Studio单元测试入门

  通常在开发Android app的时候经常会写一些小函数并验证它是否运行正确,通常做法我们是把这个函数放到某个界面(Activity上)执行一下,运行整个工程跑一下app,通过打log的方式来验证。不过,现在我们活用Android Studio自带的单元测试功能即可免除这种麻烦,直接写测试用例像Junit那样来验证你的小函数   内容提要   · 配置   · 编写Java测试用例   · 编写Android测试用例   · 其他测试基类   配置   在Android Studio中进行单元测试并不需要什么插件或者过多的配置,Android Studio本身集成了测试环境,无论是单纯的java代码单元测试还是依赖Android SDK的Android代码单元测试,都能得心应手。   首先在你的gradle中加入Junit的依赖,注意这里的依赖方式是测试期间的依赖(testCompile):   dependencies {   testCompile 'junit:junit:4.12'   }   再在项目的app/class="lazy" data-src下面和main文件夹同级的建立androidTest和test目录,并且分别在各自目录下建议java/com/xxx/xxx类似的和主工程一致的包名目录,建立好后,你的项目在Android Studio的Project中应该是这样的:

  编写Java测试用例   如果所写的测试代码没有使用android sdk(android.***下的代码),那么可以在test目录下新建,本例中即为ExampleUnitTest,例子中测试了一个RxJava的Observable的发射后被消费的结果。   注意测试用例即一个public void的方法,并且加上@Test注解,这是Junit的标准用法 package com.jason.rxjavademo; import org.junit.Test; import rx.Observer; import rx.subjects.PublishSubject; public class ExampleUnitTest { @Test public void testPublishSubject() { PublishSubject<String> stringPublishSubject = PublishSubject.create(); stringPublishSubject.subscribe(new Observer<String>() { @Override public void onCompleted() { System.out.println("Observable completed"); } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { System.out.println("Observer consumed " + s); } }); stringPublishSubject.onNext("hello world"); stringPublishSubject.onCompleted(); } }   这时候打开Android Studio左边的Structure的面板,可以看到测试用例方法testPublishSubject

  

右击并运行它,测试通过,返回了正确的值

  注意本测试用例试用了System.out.println所以测试结果直接打印在了控制台上,如果把打印的地方换成Log.d()呢,你会发现报错:

  这个实际是因为你在java的Unit test中引用了Android的代码,即android.util.log.Log。所以对于测试Android代码,需要在androidTest中   编写Android测试用例   1、Android测试用例我们可以   2、在androidTest下新建一个java类,并且继承自InstrumentationTestCase   编写一个public void的方法,但是必须要是方法名以test打头,比如testPublishSubject,并不需要@Test注解 public class TestSubject extends InstrumentationTestCase { private static final String LOG_TAG = "test"; public void testPublishSubject() { PublishSubject<String> stringPublishSubject = PublishSubject.create(); stringPublishSubject.subscribe(new Observer<String>() { @Override public void onCompleted() { Log.d(LOG_TAG, "Observable completed"); } @Override public void onError(Throwable e) { } @Override public void onNext(String s) { Log.d(LOG_TAG, "Observer consumed " + s); } }); stringPublishSubject.onNext("hello world"); stringPublishSubject.onCompleted(); } }   本例运行后,会在Android Monitor中以test这个LOGTAG打出和上一节一样的Log   Android Studio也提供了测试单个Activity或者多个Activities的测试用例方法基类,比如ActivityInstrumentationTestCase2,步骤为   在androidTest下新建一个java类,并且继承自ActivityInstrumentationTestCase2,传入需要测试的Activity的类到泛型   复写setUp方法,获得Context   编写一个public void的方法,但是必须要是方法名以test打头,比如testStart,并不需要@Test注解 public class TestActivity extends ActivityInstrumentationTestCase2<MainActivity> { private Context ctx; public TestActivity() { super(MainActivity.class); } @Override protected void setUp() throws Exception { super.setUp(); ctx = getActivity().getApplicationContext(); } public void testStart() { Intent intent = new Intent(ctx, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); ctx.startActivity(intent); } }   运行这个测试用例,你会发现模拟器上单独启动了这个Activity   其他测试基类   除了InstrumentationTestCase和ActivityInstrumentationTestCase2外,android.test还提供了很多别的测试基类,比如   · ActivityUnitTestCase   · MockApplication   · ServiceTestCase


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Android Studio单元测试入门

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Android Studio单元测试入门

通常在开发Android app的时候经常会写一些小函数并验证它是否运行正确,通常做法我们是把这个函数放到某个界面(Activity上)执行一下,运行整个工程跑一下app,通过打log的方式来验证。不过,现在我们活用Android Stud
2022-06-06

Android Studio下执行单元测试

在 Android Studio下 学习 怎么执行 单元测试 ,现总结如下:1. https://coderwall.com/p/ybds4whttp://blog.futurice.com/android_unit_testing_in
2022-06-06

简单谈谈android studio 的单元测试

面对android studio Run 一次项目要等好几分钟的痛点,不得不研究一下android studio 的单元测试。其实我的目的很简单,在不对视图进行操作的前提下,测试一些activity 的生命周期,或网络拉取数据的一些处理,比
2022-06-06

在Android Studio中实现单元测试

我们写了一个类,我们只希望测试下其算法是否正确,没必要真正运行一个完整的 APP,做单元测试即可。在 Android Studio 中,我们在 java 文件夹下,可以看到一个以“(test)”结尾的包,其中有一个E
2022-06-06

初入Android单元测试

前言在今年的Android开发技术中,MVP & RxJava & Retrofit 已经成为各个项目的标配了。了解过MVP的人都知道,其中的一个优点是便于单元测试的编写。那么我们步入单元测试的这个深坑吧。单元测试是什么单元测试(unit
2022-06-06

Android Studio中使用junit做单元测试

单元测试(unit testing),是指对软件中的小可测试单元进行检查和验证。比如一个函数,一个方法等。关于单元测试要不要做,由谁来做这些问题暂时抛到一边。本文只是单纯的介绍如何用Android Studio做单元测试。1. 确保你的工程
2022-06-06

在Android Studio进行“简单配置”单元测试

起因1、在Android studio 刚出。本人想弄单元测试,可惜当时Android studio不知道抽什么风(准确来说,应该是我不会弄而已)。无法执行到相应的代码。后来突然自己又抽风。又想去弄一下Android junit。2、本文基
2022-06-06

JUnit单元测试入门必看篇

什么是单元测试写了个类,要给别人用,会不会有bug?怎么办?测试一下。用main方法测试好不好?不好!不能一起运行!大多数情况下需要人为的观察输出确定是否正确为什么要进行单元测试重用测试,应付将来的实现的变化。提高士气,明确知道我的东西是没
2023-05-30

Android Studio下的单元测试怎么编写

在Android Studio中编写单元测试可以使用JUnit框架来进行测试。以下是编写Android Studio下单元测试的基本步骤:在项目的app/src/test/java目录下创建一个新的Java测试文件或者包。在测试文件或包中创
2023-10-21

Android如何在Android Studio当中做junit单元测试

在开发当中我们经常有这样的需求,比如我想知道以下表达式的结果:Environment.getExternalStorageDirectory().getPath()这个时候你可能会说这个还不容易么?我在项目的MainActivity当中打印
2022-06-06

Android 单元测试

Junit单元测试,使用时一般分为两种:一种是项目内测试,另一种是新建一个Junit工程。第一种情况时,要在本项目AndroidManifest.xml中作出配置: