iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >初入Android单元测试
  • 272
分享到

初入Android单元测试

android单元测试测试Android 2022-06-06 12:06:50 272人浏览 薄情痞子
摘要

  前言   在今年的Android开发技术中,MVP & RxJava & Retrofit 已经成为各个项目的标配了。了解过MVP的人都知道,其中的一

  前言   在今年的Android开发技术中,MVP & RxJava & Retrofit 已经成为各个项目的标配了。了解过MVP的人都知道,其中的一个优点是便于单元测试的编写。那么我们步入单元测试的这个深坑吧。   单元测试是什么   单元测试(unit testing),是指对软件中的小可测试单元进行检查和验证。对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单元指一个函数,Java里单元指一个类,图形化的软件中可以指一个窗口或一个菜单等。总的来说,单元是人为规定的小的被测功能模块。单元测试是在软件开发过程中要进行的低级别的测试活动,软件的独立单元将在与程序的其他部分相隔离的情况下进行测试。   其实很容易理解,对于我们开发者来说是验证一个功能是否正确的一个过程。   为什么要写单元测试   相信很多东西都有自己的测试人员,所以有的人会问了。为什么我们开发者还需要自己写代码来进行测试呢?   首先我们要知道,单元测试一般是开发人员应该关注的事情之一,单元测试只是测试一个方法单元, 他不是测试整个流程没有问题。引入单元测试,带来的好处是显而易见的,首先可以直接帮我们寻找出 bug,并且在加入新的功能模块时,可以发现它是否影响并破坏了我们原有的功能。单元测试还可以强迫让我们的代码变得精炼短小,因为太过复杂的代码无法引入单元测试。单元测试还可以节省测试成本,不需要启动整个系统,可以直接的,针对性的对任意模块进行测试。而且可以简单的模拟各种情况覆盖其各种分支。这是降低整体开发时间,提高软件质量的一种有效方法。   当然单元测试不仅需要学习,而且你要学习的东西还真不少,你要学习JUnit的使用,你要学习Mokito的使用,Robolectric的使用,依赖注入的概念和使用等等等。   简单的单元测试   单元测试其实并没有你想象中的那么复杂。   我们先用Java来举例看一下知道了, // 这是一个普通的类 public class Calculator { public int add(int one, int another) { // 为了简单起见,暂不考虑溢出等情况。 return one + another; } public int multiply(int one, int another) { // 为了简单起见,暂不考虑溢出等情况。 return one * another; } } // 这是对应的测试代码 public class CalculatorTest { public static void main(String[] args) { Calculator calculator = new Calculator(); int sum = calculator.add(1, 2); if(sum == 3) { System.out.println("add() works!") } else { System.out.println("add() does not works!") } int product = calculator.multiply(2, 4); if (product == 8) { System.out.println("multiply() works!") } else { System.out.println("multiply() does not works!") } } }   也许这个示例比较简单,让你觉得这个测试代码反而很多余了。如果你的类中方法一旦变多变复杂了,这样的测试显得很重要了。当然也有人会说,我自己写那么多判断的代码,然后还要在看着terminal的输出,才知道测试是通过还是失败。同时,也有人会问,我们Android中,很多方法也都没有返回值啊,我们应该怎么测呢?   这些一切的一切,都由框架来替我们解决了,所以我们应该掌握几个单元测试的框架。   有哪些单元测试框架   测试是一个比较大的东西,对于Android而言,有UI测试,功能测试,集成测试,扒拉扒拉扒拉的很多,当然也有很多的测试方法。我们先来看看有哪些测试的方法或者说是测试框架:   JUnit:能够直接在PC上执行;   Mokito   Robolectric:在不需要依赖Android环境的前提下,实现在PC上直接运行Android的单元测试;   Robotium:第三方UI测试框架;   Espresso:Google推出的测试框架;   UI Automator:流程的UI测试框架;   在此我列举的也只是部分常用的第三方测试框架,但是不要急着去学习它们了。我们应该先来了解一些基本的概念,这样才能更好的掌握理解框架。   Mock   一个类的方法可以分为两种,一种是有返回值的,另一种是没有返回值的。对于有返回值的方法,我们要测起来比较容易,跟上面的Calculator例子那样,输入相应的参数,得到相应的返回值,然后验证得到的返回值跟我们预期的值一样,好了。   但是没有返回值的方法,要怎么测试呢?   这里我们以Android中的一个login流程来进行分析一下:   // 一个Login页面,上面有两个输入框和一个button。两个输入框分别用于输入用户名和密码。点击button以后,有一个UserManager会去执行perfORMlogin操作,然后将结果返回,更新页面。   public void login() {   String username = ...//get username from username EditText   String passWord = ...//get password from password EditText   //do other operation like validation, etc   ...   mUserManager.performlogin(username, password);   }   这个方法是void的,那么怎么验证这个方法是正确的呢?其实仔细想想,这个方法也是有输出的,它的输出是,调用了mUserManager的performLogin方法,同时传给他两个参数。所以只要验证mUserManager   的performLogin方法得到了调用,同时传给他的参数是正确的,说明这个方法是能正常工作的。   那怎么样验证这个Activity的login()方法,会调用mUserManager的performLogin方法呢?这里涉及到mock的概念,所以我们先来讲讲什么是Mock   所谓的 Mock 是创建一个类的虚假的对象,在测试环境中,用来替换掉真实的对象,主要提供两大功能:   验证这个对象的某些方法的调用情况,调用了多少次,参数是什么等等   指定这个对象的某些方法的行为,返回特定的值,或者是执行特定的动作   要使用 Mock,一般需要用到 Mock 框架,常见的是 Mockito 这个框架,这个是Java界使用广泛的一个mock框架。   小结   本篇文章,从为什么要做单元测试到单元测试所涉及的一些概念,框架进行了介绍。同时引入了Mockito这个框架,但是这个框架的使用也不是一两句话可以介绍清楚的,所以打算在下一篇文章对Mockito的使用进行进一步的讲解。


--结束END--

本文标题: 初入Android单元测试

本文链接: https://www.lsjlt.com/news/28722.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • vue 单元测试初探
    目录前言 为什么要引进单元测试? 单元测试概述 测试开发的模式 1. 测试驱动开发(TDD - Test Driven Development) 2. 行为驱动开发(BDD - Be...
    99+
    2024-04-02
  • android单元测试怎么实现
    Android单元测试可以通过使用JUnit框架和Android Testing Support Library来实现。以下是实现A...
    99+
    2023-08-29
    android
  • android单元测试如何配置
    要配置Android单元测试,您可以按照以下步骤进行操作:1. 在您的Android项目中,打开`build.gradle`文件。2...
    99+
    2023-09-26
    android
  • SpringBoot中Mockito单元测试入门
    目录Mock 测试What's Mockito使用 Mockitopom依赖Demo Code【常规操作】【Mockito】Mock 测试 Mock 测试就是在测试过程中,创建一个假...
    99+
    2024-04-02
  • Java JUnit 101:单元测试初学者指南
    简介 单元测试是一种软件测试类型,其中针对应用程序的单个单元(如方法或类)执行自动测试。JUnit 是 Java 中广泛使用的单元测试框架,它提供了一组用于编写和运行测试的注释和断言。 设置 要使用 JUnit,请将 JUnit 库添加...
    99+
    2024-02-16
    Java JUnit 单元测试 测试框架
  • java-单元测试
    一、什么是单元测试? 单元测试(unit testing),是指对软件中的最小可测试单元进行检查和验证。至于“单元”的大小或范围,并没有一个明确的标准,“单元”可以是一个函数、方法、类、功能模块或者子系统。 单元测试通常和白盒测试联系到...
    99+
    2023-09-26
    java 学习 Powered by 金山文档
  • Python 单元测试 & 文档测试
    1.1   单元测试1.1.1   单元测试编写单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。编写一个Dict类,这个类的行为和dict一致,但是通过属性来访问。>>> d = Dict(a=1,...
    99+
    2023-01-31
    单元测试 文档 测试
  • JUnit单元测试入门必看篇
    什么是单元测试写了个类,要给别人用,会不会有bug?怎么办?测试一下。用main方法测试好不好?不好!不能一起运行!大多数情况下需要人为的观察输出确定是否正确为什么要进行单元测试重用测试,应付将来的实现的变化。提高士气,明确知道我的东西是没...
    99+
    2023-05-30
    junit 单元测试
  • 【Spring Boot】单元测试
    单元测试 单元测试在日常项目开发中必不可少,Spring Boot提供了完善的单元测试框架和工具用于测试开发的应用。接下来介绍Spring Boot为单元测试提供了哪些支持,以及如何在Spring B...
    99+
    2023-09-16
    spring boot 单元测试 log4j
  • Node.js 单元测试入门:Chai 的简单教程
    在 Node.js 中进行单元测试时,Chai 是一个非常受欢迎的断言库。它提供了丰富的断言方法,可以帮助我们轻松地验证测试结果。本文将介绍 Chai 的基本用法,并通过一些示例演示如何使用 Chai 进行单元测试。 安装 Chai 首先...
    99+
    2024-02-12
    Node.js 单元测试 Chai
  • 前端Vue单元测试入门教程
    目录一、为什么需要单元测试 二、如何写单元测试 三、测试工具 四、Jest入门 安装 简单示例 Jest Cli 使用配置文件 使用 Babel vue-cli 中使用 Jest 常...
    99+
    2024-04-02
  • Python 单元测试(unittest
    项目的整体结构可以参考“软件目录开发规范”,这里单说测试目录。一般都是在项目里单独创建一个测试目录,目录名就是“tests”。关于目录的位置,一种建议是,在项目名(假设项目名是Foo)的一级子目录下创建二级子目录 “Foo/foo/tes...
    99+
    2023-01-31
    单元测试 Python unittest
  • Android Studio下的单元测试怎么编写
    在Android Studio中编写单元测试可以使用JUnit框架来进行测试。以下是编写Android Studio下单元测试的基本...
    99+
    2023-10-21
    Android
  • Spring Boot 单元测试
    文章目录 1. 单元测试是什么2. 单元测试的优点3. 进行 Spring Boot 单元测试3.1 确认项目中已经内置了测试框架3.2 生成单元测试的类3.3 添加 @SpringBootT...
    99+
    2023-09-15
    单元测试 spring boot java
  • @SpringBootTest单元测试测试类的使用
    前言 使用SpringBoot 测试类可在不需要启动程序时,即可使用。当你运行你的测试方法时他会自己启动程序调用所需使用到的mapper,service接口,实现方法。故而可在测试类中像编写正常service方法一样编写代码 一.依赖录入 ...
    99+
    2023-08-21
    单元测试 junit java
  • 测试TLS客户端的单元测试
    在Golang实战开发的过程中,我们经常会遇到一些这样那样的问题,然后要卡好半天,等问题解决了才发现原来一些细节知识点还是没有掌握好。今天编程网就整理分享《测试TLS客户端的单元测试》,聊聊,希望可...
    99+
    2024-04-04
  • JavaScript Jest 初学者指南:拆解单元测试基础
    引言 在软件开发中,单元测试是至关重要的,它验证了应用程序单个模块或功能的正确行为。Jest 是一个流行的 JavaScript 测试框架,以其简洁性、易用性和对现代 JavaScript 特性的支持而闻名。对于 JavaScript ...
    99+
    2024-02-17
    JavaScript Jest 单元测试 测试框架 测试用例
  • 如何在单元测试期间注入PersistenceContext
    在单元测试期间注入PersistenceContext有多种方式,下面是其中两种常见的方式:1. 使用模拟的PersistenceC...
    99+
    2023-09-27
    单元测试
  • Go 语言单元测试
    php小编鱼仔今天为大家介绍一下Go语言的单元测试。在软件开发中,单元测试是非常重要的一环。通过编写测试用例,我们可以验证代码的正确性,提高代码质量和可维护性。Go语言提供了丰富的测试...
    99+
    2024-02-09
    go语言
  • Java单元测试介绍
    文章目录 单元测试单元测试基本介绍单元测试快速入门单元测试常用注解 单元测试 单元测试基本介绍 单元测试: 单元测试就是针对最小的功能单元编写测试代码,Java程序最小的功能单元是...
    99+
    2023-08-31
    单元测试 java junit
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作