【读书笔记】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 的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...
随机推荐
- XMPP HTTP
1.TCP连接 要想明白Socket连接,先要明白TCP连接.手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接.TCP协议可以对上层网络提供接口,使上 ...
- django restframwork教程之Request和Response
从这一篇文章开始,我们会覆盖整个REST framwork框架的核心,接下来让我们介绍一些基础的构建块 Request 对象 REST framework 引入了一个扩展HttpRequest的请求对 ...
- java框架---->quartz整合spring(一)
今天我们学习一下quartz的定时器的使用.年轻时我们放弃,以为那只是一段感情,后来才知道,那其实是一生. quartz的简单实例 测试的项目结构如下: 一.pom.xml中定义quartz的依赖 & ...
- 【python系列】安装完PyCharm创建项目提示No Python interpreter selected
安装Python解释器 去python官网下载python的安装包(https://www.python.org/downloads/release/python-361/) 注意安装的时候选择配置p ...
- java.lang.NoSuchMethodException:com.yxq.action.AdminAction.addGoods()《转载》
java.lang.NoSuchMethodException:com.yxq.action.AdminAction.addGoods() 在学习struts2的时有时会出现此异常,现将其总结如下 ...
- 1296: [SCOI2009]粉刷匠[多重dp]
1296: [SCOI2009]粉刷匠 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 1919 Solved: 1099[Submit][Statu ...
- 键盘event.which属性
IE中,只有keyCode属性,而FireFox中有which和charCode属性 event.which属性对DOM原生的event.keyCode和event.charCode进行了标准化. f ...
- 代码片段,使用TIKA来解析PDF,WORD和EMAIL
/** * com.jiaoyiping.pdstest.TestTika.java * Copyright (c) 2009 Hewlett-Packard Development Company, ...
- 【BZOJ1713】[Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 斜率优化
[BZOJ1713][Usaco2007 China]The Bovine Accordion and Banjo Orchestra 音乐会 Description Input 第1行输入N,之后N ...
- iOS5 ARC学习笔记:strong、weak等详解
2013-03-25 13:41 佚名 oschina 字号:T | T iOS5中加入了新知识,就是ARC,其实我并不是很喜欢它,因为习惯了自己管理内存.但是学习还是很有必要的.现在我们看看iOS5 ...