【读书笔记】Junit实战
Junit实战读书笔记
第一章节
探索Junit:
Junit是1997年Erich Gammay和Kent Beck一同创建的一个简单有效的测试框架,其中Erich Gammay是经典《设计模式》的四大作者之一,而BentBeck是《极限编程》的创造者
安装Junit:直接引入对应的jar包
编写第一个测试:
能够使用main模拟对应的测试case,然后使用System.out的模式进行处理,但是后期项目庞大的时候,就没有办法掌控住对应的局面了,于是有了这样一个框架。能够对输入参数,前期准备、执行测试、测试返回进行断言,对超时,对异常进行全面的处理。针对单一的方法。
运行测试:
使用对应的方法执行
第二章节
- 使用核心Junit类
| Junit概念 | 责任 |
|---|---|
| Assert | 让你去定义想要测试的条件,当条件成立是,assert保持沉默;单条件不成立的时候,抛出异常 |
| 测试 | 一个以Test注释的方法定义的一个测试。为了运行这份方法,JUnit会创建一个包含类的新实例,然后调用这个被注释的方法 |
| 测试类 | 一个测试类是Test方法的容器 |
| Suite测试集合 | suite允许将测试类归类成一组 |
| Runner运行器 | Runner类用来运行测试。Junit4是向后兼容的,可以运行Junit3的测试 |
运行参数化测试:Parameterized(参数化)的测试运行器允许你使用不同的参数去多次允许同一个测试代码。
测试运行器:Junit的测试运行器
| 类 | 目的 |
|---|---|
| org.junit.internal.runners.Junit38ClassRunner | 这个运行器包含在当前的JUnit版本中,仅仅是为了向后兼容,他将测试用例作为JUnit3.8的测试用例来启动 |
| org.junit.runner.Junit4 | 这个运行器将测试用例作为JUnit4的测试用例来启动 |
| org.junit.urnners.Parameterized | 这个测试运行器可以使用不同参数来运行相同的测试集 |
| org.junit.runners.Suite | Suite是一个包含不同测试的容器,同事Suite也是一个运行器,可以运行一个测试类中的所有以Test注释的方法 |
- 理解Junit的机制
JunitCore facade外观模式(org.junit.runner.JunitCore),他可以运行任何测试运行器,并收集测试结果以及统计信息
设计模式实践:设计模式
facade是一种设计模式,它为子系统的一组接口提供了一个统一的接口,facade定义了一个更高级别的接口,使得子系统更易于使用。你可以使用facade来将一些复杂的对象交互简化成一个单独的接口。
并且能够自定义测试运行器,只要扩展Runner类即可
使用sutie来组合测试类
组合一组测试集合
- 理解Junit的生命周期
生命周期:
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass -> 结束
第三章节
- 实现一个简单的应用程序
模拟一个网络应用的控制层面的代码,并且模拟测试 - 使用Junit测试这个应用程序
- 遵循Junit最佳实践
测试的异常处理
在Test中能够处理对应的异常,如果抛出对应异常,也算测试通过
测试超时处理
在测试方法中设定timeout,如果测试过后,以后不需要进行超时设置,就创造忽略的注解
Junit最佳实践:
- 一次只能单元测试一个对象
- 选择有意义的测试方法名字
- 在assert调用中解释失败的原因
- 一个单元测试等于一个Test方法
- 测试任何可能失败的事物
- 让测试改善代码
- 使异常测试更易于阅读
- 总是为跳过测试说明原因
【读书笔记】Junit实战的更多相关文章
- AngularJS in Action读书笔记6(实战篇)——bug hunting
这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...
- [读书笔记]项目管理实战:Microsoft Project精髓与方法
<项目管理实战:Microsoft Project精髓与方法>是Bonnie Biafore 写的一本书.Bonnie Biafore 作为项目管理师(PMP),她有20余年为大中小型客户 ...
- AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示
前言: "宁肯像种子一样等待 也不愿像疲惫的陀螺 旋转得那样勉强" 这是前几天在查资料无意间看到的一位园友的签名,看完后又读了两遍,觉得很有味道.后来一寻根究底才知这是出资大诗 ...
- AngularJS in Action读书笔记4(实战篇)——创建Statistic模块
个人感觉<Angularjs in action>这本书写的很好,很流畅,循序渐进,深入浅出,关键是结合了一个托管于Github上的实例讲解的,有代码可查,对于初学者应该是个不错的途径.( ...
- 读书笔记---HTML5实战 MARCO CASARIO(后六章)
画布叠加:用CSS的z-index和position; 第八章 HTML5通信API ①XMLHTTPREQUEST是JS中用于服务器交互的API; ②用HTML5的POSTMESSAGE API实现 ...
- 读书笔记---HTML5实战 MARCO CASARIO(前六章)
1:行内元素转化为块级元素①display②position③float; 2:语义化; 3:微数据itemscope/itemprop/itemtype; 4:新表单元素,form外的表单元素可以用 ...
- Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记
Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...
- 《Apache kafka实战》读书笔记-kafka集群监控工具
<Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...
- 【读书笔记《Bootstrap 实战》】6.单页营销网站
我们已经掌握了很多实用 Bootstrap 的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...
随机推荐
- jQuery之ajaxForm提交表单
1.jQuery的设计非常优雅,其源代码亦给人以美感,利用jQuery框架写出来的js既简练又能完美跨浏览器. 2.jquery form插件是基于jQuery开发的一套能够利用ajax技术提 ...
- 【golang】 go语言之环境搭建+ 第一个go语言程序
1 下载:http://www.golangtc.com/download (以win为例) 2 安装步骤: 安装包: go1.8.windows-amd64.msi 双击进行安装 创建工作目录 :D ...
- c++虚函数[转]
C++ 虚函数表解析 陈皓 http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制.关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父 ...
- 【Android M】预制的 Google GMS包
目录:android/vendor/google/apps .├── AndroidPay│ ├── Android.mk│ ├── AndroidPay_arm64.apk│ ├── A ...
- Sencha中Element的使用
在sencha touch中如果你要是用模板来构造一些UI,那么你就必定要去操作Element,如下是我对Element的一些操作和遇到的问题 获取Elenent Ext.get("ID&q ...
- 从CES看2016物联网发展趋势
[导读] 美国时间1月6号,千呼万唤始出来的2016年国际消费电子展(CES2016)在拉斯维加斯正式拉开序幕.三天会展完满落幕,这个被誉为全球消费电子技术风向标的北美最大消费电子展俨然变成了未来智慧 ...
- SPF难以解决邮件伪造的现状以及方案
邮件伪造的现状 仿冒域名 私搭邮服仿冒域名: 例如某公司企业的域名是example.com,那么攻击者可以搭建一个邮服,也把自己的域名配置为example.com,然后发邮件给真实的企业员工xxx@e ...
- Lucene构建索引时的一些概念和索引构建的过程
在搜索文档内容之前要做的事情就是对从各种不同来源(网页,数据库,电子邮件等)的文档进行索引,索引的过程就是对内容进行提取,规范化(通过对内容进行建模来实现),然后存储. 在索引的过程中有几个基本的概念 ...
- chrome inspect 离线调试-工具包 怎么使用
1.找到相关目录: C:\Users\当前用户\AppData\Local\Google\Chrome\User Data\Default 2.找到以下文件夹: 1.Application Cache ...
- Mac OS X运行程序出现bad interpreter: operation not permitted的解决方案
最近想在我的mac笔记本上安装gvim,从官网上下载了程序后竟然非常诡异的双击无法打开,命令行执行时系统报错: /bin/sh bad interpreter operation not permit ...