前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >开发者测试进阶

开发者测试进阶

作者头像
归根落叶
发布2020-05-15 15:41:11
6790
发布2020-05-15 15:41:11
举报

——网易云课堂《开发者测试》课程笔记

这节,我给大家介绍大名鼎鼎的xUnit系列和我们的测试平台慕测。

xUnit几乎成为今天最为著名的面向开发者的测试框架,它是开源的自动化测试框架。最初它是面向Smalltalk及Sunit。我们知道,Smalltalk是一个非常著名的面向对象编程语言。Sunit是1998年由Kent Beck所开发。我们知道,Kent Beck是极限编程的创始人。所以这一点在整个xUnit系列得到非常重要的体现,帮助软件开发人员提高编码效率及质量。

而今天我们在所有的xUnit系列当中,最著名的可能是Junit。Junit是由Kent Beck和Erich Gamma共同联手开发。而Erich Gamma是设计模式的开创者之一,也是Eclipse的总设计师。所以由他们联手,开发一个非常流行非常好用的Junit,也是我们这门课的重点。

xUnit系列当中的框架有非常多,但他们几乎都遵循相同的架构,包括以下内容。

• Test runner,负责把代码和测试组装起来进行运行获得结果。 • Test case,测试用例,是指一些测试脚本,包括输入、断言等等各种处理,以进行对代码的测试。 • Test suite,测试套件是把这些测试用例组装起来,进行更加高效的有效的测试。 • Test fixture,主要是指测试的上下文及包括环境的一些封装,得到一个有效的测试结果。 • Test execution,测试执行是指控制整个测试用例执行的细节,模拟预期以完成测试任务。 • Test result formatter,是对测试结果的收集。 • Assertions,是对测试结果的分析和判断等等。 互联网上有非常丰富的xUnit的资源,有些是独立的xUnit系列网站,比如junit.org是Junit的一个资源网站。

Junit是一个非常强大的单元测试框架,但我们前面已经强调过关于单元测试的定义是可以扩展的。

Junit是有两个大名鼎鼎的人物创造的,也是所有xUnit系列当中最为成功的一个,我们这门课几乎所有的白盒测试都依赖于Junit来完成。

这节我们介绍Junit的进阶使用,我们主要包括以下内容,第一,断言,第二,参数化,第三,测试套件,第四,执行时限。

断言就是我们传统意义上的测试预言,预期输出。我们知道一个完整的测试用例通常至少包括测试数据和测试预言。也会包括一些测试环境信息我们共同封装成可用的一个测试脚本。而断言就是用来判断它的结果对还是不对的一个重要手段。

Junit提供丰富的断言机制,我们在assert后面进行各种变化。

常见的有判断:assertTrue/assertFalse,也就是判断这个条件是True or False。

同时,他提供.fail方法来进行失败的一些分析。我们还有一些等式的判断等等都在断言里面提供,对应同时提供一些对象的判别。

参数化,几乎是在所有的自动化测试中最为普遍的一个功能。今天他几乎在所有的自动化测试框架中都给以实现,我们通过一系列标注来实现自动化测试的参数化。

所谓参数化,是指我们在运行测试的脚本实现相同动作的同时要冠以不同的一个输入数据,那么这时候,我们把数据的测试和代码分离出来。以实现更好的扩展性。

测试套件是为了更有效的组织测试用例的一种方式,比如我们把不同的测试类组装起来同时运行。实现相同或者不同的一些测试目的。

执行时限也是我们在测试里面非常常见的一个功能。以防止在程序运行或者测试执行的时候过长,进入死循环等等。

我们进一步来讲解开发者测试所需要考虑的内容。主要包括,异常和Mock的处理。

异常是现代编程语言为了提高代码质量和健壮性而提供的一种机制,来处理在代码正常范围以内的意外。通常这一部分也需要测试。传统测试很难对异常部分的message进行判断。所以在Junit里面提供一个类似try/catch的机制来分析里面详细的一些状态信息。

而Mock是为了屏蔽外调的一个常用手段,也几乎在所有的自动化测试里面都提供类似的机制。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-12-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 贝克街的捉虫师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云课堂
云课堂聚焦教培机构 OMO 转型,为机构提供在线及混合式课堂解决方案,极速开课、多向互动、智能沉淀、一键分发,是教培课堂便捷、稳定的教学助手。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档