Android基础入门の单元测试

本文介绍了单元测试的概念及其在软件开发中的重要性,强调了其对于提高代码质量和维护性的作用,并以Java中的JUnit为例说明了如何进行单元测试。



德国风景图

一.概述

  在android项目开发过程中,我们往往会封装较为常用的工具类,以便于后面的开发。针对写好的工具类,对于严谨的程序猿来说肯定少不了一番测试调优稳定了之后才使用,而最常见的测试我们写好的工具类的方法有mian方法调试调用、单元测试这两大块。

  对于main方法进行调试虽是一种较为常见的方法,但针对于处处想更加方便快捷的程序猿的我们,每次写着固定的格式,并且每次都得写一堆的代码才能进行调试,难免会觉得烦躁的,所以就有了单元测试。但对于天朝的程序猿来说,单元测试在程序猿中很大比例被忽略,虽然这种忽略虽然在项目开发周期较为紧迫时候,或许能对项目的进度增加一些效率,但对于后期项目的健壮性带来很大的隐患。所以个人认为在时间允许的条件下一定要写单元测试,为了就是让自己写的工具类相对较为严谨,这也是软件工程所推荐的。

  单元测试有什么好处?归纳下有以下几点:

  1. 一种验证行为。

    程序中的每一项功能都是测试来验证其正确性的,为以后的开发提供支援。就算是开发后期,我们也可以轻松的增加功能或更改程序结构,而不用担心这个过程中会破坏重要的东西。而且它为代码的重构提供了保障。这样。我们就可以更自由的对程序进行修改。

  2. 一种设计行为。

    编写单元测试将使我们从调用者观察、思考。特别是先写测试(test-first),迫使我们把程序设计成易于调用和可测试的,即迫使我们解除软件中的耦合。

  3. 一种编写文档的行为。

    单元测试是一种无价的文档,它是展示函数或类如何使用的最佳文档。这份文档是可编译、可运行的,并且它保持最新,永远与代码同步。

  4. 具有回归性。

    自动化的单元测试避免了代码出现回归,编写完成之后,可以随时随地的快速运行测试。


二.定义

  单元测试,是指对软件中的最小可测试单元进行检查和验证。比如我们可以测试一个类,或者一个类中的一个方法。单元测试需要达到的目的:1、程序正常运行;2、运行结果符合预期效果。


三.Java的单元测试JUnit

  在讲述Android单元测试前,我们需要先了解下java中的单元测试的定义及使用。
  在Java中单元测试创建方式,如下:

1.新建一个项目,在此就不累赘了,然后在项目的src选择NEW >JUnit Test Case

2.填写包名和类名(选择New JUnit 4 Test),点击最下面的那个“Browse”按钮来选择需要测试的类:

3.输入要测试的类名,确定后选择下一步:

4.选择Next,勾选需要测试的方法:

5.勾选要测试的方法,点击“Finish”,如未导入JUnit对应的jar会提示如下,选择确定即可,至此生成默认对应类的测试方法:

  • 加粗 Ctrl + B

  • 斜体 Ctrl + I

  • 引用 Ctrl + Q

  • 插入链接 Ctrl + L

  • 插入代码 Ctrl + K

  • 插入图片 Ctrl + G

  • 提升标题 Ctrl + H

  • 有序列表 Ctrl + O

  • 无序列表 Ctrl + U

  • 横线 Ctrl + R

  • 撤销 Ctrl + Z

  • 重做 Ctrl + Y

Markdown及扩展

Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面。 —— [ 维基百科 ]

使用简单的符号标识不同的标题,将某些文字标记为粗体或者斜体,创建一个链接等,详细语法参考帮助?。

本编辑器支持 Markdown Extra ,  扩展了很多好用的功能。具体请参考Github.

表格

Markdown Extra 表格语法:

项目 | 价格

——– | —

Computer | $1600

Phone | $12

Pipe | $1

可以使用冒号来定义对齐方式:

| 项目 | 价格 | 数量 |

| :——– | ——–:| :–: |

| Computer | 1600 元 | 5 |

| Phone | 12 元 | 12 |

| Pipe | 1 元 | 234 |

定义列表

Markdown Extra 定义列表语法:

项目1

项目2

定义 A

定义 B

项目3

定义 C

定义 D

定义D内容

代码块

代码块语法遵循标准markdown代码,例如:


@requires_authorization

def somefunc(param1='', param2=0):

    '''A docstring'''

    if param1 > param2: # interesting

        print 'Greater'

    return (param2 - param1 + 1) or None

class SomeClass:

    pass

>>> message = '''interpreter

... prompt'''

脚注

生成一个脚注1.

目录

[TOC]来生成目录:

数学公式

使用MathJax渲染LaTex 数学公式,详见math.stackexchange.com.

  • 行内公式,数学公式为: Γ(n)=(n1)!nN

  • 块级公式:

x=b±b24ac2a

更多LaTex语法请参考 这儿.

UML 图:

可以渲染序列图:

Created with Raphaël 2.1.0 张三 张三 李四 李四 嘿,小四儿, 写博客了没? 李四愣了一下,说: 忙得吐血,哪有时间写。

或者流程图:

Created with Raphaël 2.1.0 开始 我的操作
  • 关于 序列图 语法,参考 这儿,

  • 关于 流程图 语法,参考 这儿.

离线写博客

即使用户在没有网络的情况下,也可以通过本编辑器离线写博客(直接在曾经使用过的浏览器中输入write.blog.youkuaiyun.com/mdeditor即可。Markdown编辑器使用浏览器离线存储将内容保存在本地。

用户写博客的过程中,内容实时保存在浏览器缓存中,在用户关闭浏览器或者其它异常情况下,内容不会丢失。用户再次打开浏览器时,会显示上次用户正在编辑的没有发表的内容。

博客发表后,本地缓存将被删除。 

用户可以选择 把正在写的博客保存到服务器草稿箱,即使换浏览器或者清除缓存,内容也不会丢失。

注意:虽然浏览器存储大部分时候都比较可靠,但为了您的数据安全,在联网后,请务必及时发表或者保存到服务器草稿箱

浏览器兼容

  1. 目前,本编辑器对Chrome浏览器支持最为完整。建议大家使用较新版本的Chrome。

  2. IE9以下不支持

  3. IE9,10,11存在以下问题

    1. 不支持离线功能

    2. IE9不支持文件导入导出

    3. IE10不支持拖拽文件导



  1. 这里是 脚注内容.
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值