首页 > 编程语言 >Android进阶之路 - Java 单元测试

Android进阶之路 - Java 单元测试

时间:2023-04-26 16:26:01浏览次数:60  
标签:Java 单元测试 Test test import Android androidTest

在此之前,我在单元测试的时候,往往会单独创建一个Demo去进行功能实现,这俩天正好闲下来,所以快速的掌握了一下这个知识点,挺简单的,下面看图说话,看完你就出师了

Look here ~ :此文讲的并不高深,扩展也有限,我的目的仅仅是初步且快速的掌握单元测试使用方式,从而提升自己的开发效率 ~

单元测试

需注意该篇单元测试仅适用于Java单元测试,如需Kotlin单元测试,可前往 Kotlin进阶指南 - 单元测试

      • 初识步骤
        • 1. 创建项目,识别每个包的作用
        • 2. 选取对应包名下的类名,点击左侧的 Structure(结构)
        • 3. 查看当前选取测试类的内部方法,这里的aaa()是我自己进行测试一个方法
        • 4. 选取对应方法Run起来
        • 5. 运行通过,我是Logcat进行结果查询
      • 写一个自己的单元测试
        • 1. 在单元测试包下,创建我们自己的Test类(注意图中的俩处注解)
        • 2. 老方法,Run起来
      • 温馨提示
        • 单元测试的选择区间
        • androidTest 与 test 区别
        • 你该注意的那些事项

初识步骤

1. 创建项目,识别每个包的作用

这里写图片描述

2. 选取对应包名下的类名,点击左侧的 Structure(结构)

这里写图片描述

ExampleInstrumentedTest (我们要单元测试的类)

package com.dow.yongliu.unittext;

import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import android.util.Log;

import org.junit.Test;
import org.junit.runner.RunWith;

import static org.junit.Assert.*;

/**
 * Instrumented test, which will execute on an Android device.
 * @see <a href="http://d.android.com/tools/testing">Testing documentation</a>
 */
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
    @Test
    public void useAppContext() throws Exception {
        // Context of the app under test.
        Context appContext = InstrumentationRegistry.getTargetContext();

        assertEquals("com.dow.yongliu.myapplication", appContext.getPackageName());
    }

    @Test
    public void aaa(){
        Log.e("tag","测试方法执行完毕");
    }
}

3. 查看当前选取测试类的内部方法,这里的aaa()是我自己进行测试一个方法

这里写图片描述

4. 选取对应方法Run起来

这里写图片描述

5. 运行通过,我是Logcat进行结果查询

这里写图片描述

写一个自己的单元测试

1. 在单元测试包下,创建我们自己的Test类(注意图中的俩处注解)

这里写图片描述

2. 老方法,Run起来

这里写图片描述

温馨提示

上图的每个方法Run后的结果都是正确的,只是图片有一丢丢的模糊

单元测试的选择区间

项目初建时给了我们俩个测试途径包,一个是androidTest,一个是test ~

如不理解,请看下图

这里写图片描述

androidTest 与 test 区别

使用而言,俩者的注解方式不同,但是更多的我们要看一下他们的使用场景;具体原因可看下方的注意事项

  • androidTest 包内的单元测试依赖于手机,也作用于手机,往往需要侧重于Android方面的单元测试
  • test 包内的单元测试,更多的是用于查看某个单独方法的运行结果

你该注意的那些事项

在较早的一篇博文中,有这样的一段话:Build Variants 的选择很重要,如果选择 Unit TestsAndroid的测试用例就会不被识别,反之Java的测试用例不被识别,所以在跑测试用例时一定选对标签

  • 测试类一定要在 androidTest 或 test 文件夹下
  • 写自己的方法时候,一定要声明 public 权限
  • androidTest 下的 测试类一定要在类名上方 加入注解 @RunWith(AndroidJUnit4.class) 或者 @RunWith(JUnit4.class) ,同时内部方法上 加入注解 @Test
  • test 下的测试类,无需注解,只需再测试方法加入注解 @Test

标签:Java,单元测试,Test,test,import,Android,androidTest
From: https://www.cnblogs.com/cps666/p/17356442.html

相关文章

  • Kotlin进阶指南 - 单元测试
    为了减少一些功能繁琐的测试流程,单元测试是提升开发效率的有效方式之一在早些年的时候我有记录过一篇Android使用单元测试,只不过当时更多的针对Java方面的单元测试;在使用Kotlin后,我发现单元测试有点不同,好像又没什么改变,故此直接记录一篇针对Java、Kotlin都可以使用的......
  • 打卡4(java)
    importjava.util.Scanner;publicclassMain{publicstaticvoidmain(String[]args){Scannersc=newScanner(System.in);inta=sc.nextInt(),b=sc.nextInt();intc=sc.nextInt(),d=sc.nextInt();intx=a*60+b,y=c*60+d;......
  • Android结构优化 - Java、Kotlin项目结构分包
    随着Android中Java、Kotlin的混编开发场景越来越多,其中大多人都会将java文件和kt文件放在同一个资源文件夹下,在项目越来越大的情况下,我们进行代码查询、项目重构、优化都不太便捷,所以本篇主要记录通过kotlin分包、java分包来区分、整合java类和kotlin类因为目前项目为......
  • python与java 对应的加密算法
    python与java对应的加密算法1.gzip加密java的gzip加密:importjava.io.ByteArrayInputStream;importjava.io.ByteArrayOutputStream;importjava.util.Arrays;importjava.util.zip.GZIPInputStream;importjava.util.zip.GZIPOutputStream;publicclassHello{......
  • loopback4:单元测试冻结时间
    解决方案import{expect}from'@loopback/testlab';importsinonfrom'sinon';describe('exampletest',()=>{letclock:sinon.SinonFakeTimers;before(()=>{clock=sinon.useFakeTimers();});after(()=>......
  • Android Jetpack DataStore
    原文地址www.jianshu.com导语Jetpack简介及其它组件文章DataStore就是SharedPreferences(简称SP)的替代品,Google为什么要用DataStore来替代SP呢,因为SP存在着很多问题,我之前在AndroidSharedPreferences转为MMKV中有详细说明了SP的不足,但是当时的有些观点还有些浅薄,所以使用了......
  • android:Retrofit2网络请求封装
    原文地址blog.csdn.netRetrofit使用=================================================================================Retrofit是一个网络请求框架,先来说一下怎么使用网络权限(添加到AndroidManifest.xml)<uses-permissionandroid:/>gradle依赖(添加到build.gra......
  • Android原生项目引入Flutter
    原文地址www.jianshu.com前言目前Flutter可以说是非常火热了,多次更新过后也越来越稳定,受到了很多开发者的青睐。不过纯Flutter开发还是存在一定成本和风险的,尤其是对于规模稍大一些的项目,可能更加适合的是将Flutter用于项目中的某一个模块,因此我们有必要了解一下如何在原生......
  • Android中好用的库
    原文地址www.jianshu.com本库主要提供一个简单易用的自定义分段控件,方便快速实现分段效果,支持xml配置、代码配置、分段规则按均分/比例分、数字分段、文本分段、渐变分段、bar条样式正常/圆形/三角形,segment文字样式、进度设置、进度标记类型设置、分段描述设置、其它更多自......
  • Android多进程时Application初始化问题
    原文地址blog.csdn.net之前在做项目时,遇到一个大坑,就是我的APP的Application的onCreate方法,竟然执行了好几次,这就导致我在onCreate里面做了一些初始化的操作被重复执行了,导致奇怪的bug产生。后来冷静下来分析一下,才发现有一些第三方组件,比如百度推送之类的,它们是单独开了一......