Junit实战读书笔记

第一章节

探索Junit:
Junit是1997年Erich Gammay和Kent Beck一同创建的一个简单有效的测试框架,其中Erich Gammay是经典《设计模式》的四大作者之一,而BentBeck是《极限编程》的创造者

安装Junit:直接引入对应的jar包

编写第一个测试:
能够使用main模拟对应的测试case,然后使用System.out的模式进行处理,但是后期项目庞大的时候,就没有办法掌控住对应的局面了,于是有了这样一个框架。能够对输入参数,前期准备、执行测试、测试返回进行断言,对超时,对异常进行全面的处理。针对单一的方法。

运行测试:
使用对应的方法执行

第二章节

  1. 使用核心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注释的方法
  1. 理解Junit的机制

JunitCore facade外观模式(org.junit.runner.JunitCore),他可以运行任何测试运行器,并收集测试结果以及统计信息

设计模式实践:设计模式
facade是一种设计模式,它为子系统的一组接口提供了一个统一的接口,facade定义了一个更高级别的接口,使得子系统更易于使用。你可以使用facade来将一些复杂的对象交互简化成一个单独的接口。
并且能够自定义测试运行器,只要扩展Runner类即可

使用sutie来组合测试类
组合一组测试集合

  1. 理解Junit的生命周期

生命周期
@BeforeClass -> @Before -> @Test -> @After -> @AfterClass -> 结束

第三章节

  1. 实现一个简单的应用程序
    模拟一个网络应用的控制层面的代码,并且模拟测试
  2. 使用Junit测试这个应用程序
  3. 遵循Junit最佳实践
    测试的异常处理
    在Test中能够处理对应的异常,如果抛出对应异常,也算测试通过
    测试超时处理
    在测试方法中设定timeout,如果测试过后,以后不需要进行超时设置,就创造忽略的注解

Junit最佳实践:

  1. 一次只能单元测试一个对象
  2. 选择有意义的测试方法名字
  3. 在assert调用中解释失败的原因
  4. 一个单元测试等于一个Test方法
  5. 测试任何可能失败的事物
  6. 让测试改善代码
  7. 使异常测试更易于阅读
  8. 总是为跳过测试说明原因

【读书笔记】Junit实战的更多相关文章

  1. AngularJS in Action读书笔记6(实战篇)——bug hunting

    这一系列文章感觉写的不好,思维跨度很大,原本是由于与<Angularjs in action>有种相见恨晚而激发要写点读后感之类的文章,但是在翻译或是阐述的时候还是会心有余而力不足,零零总 ...

  2. [读书笔记]项目管理实战:Microsoft Project精髓与方法

    <项目管理实战:Microsoft Project精髓与方法>是Bonnie Biafore 写的一本书.Bonnie Biafore 作为项目管理师(PMP),她有20余年为大中小型客户 ...

  3. AngularJS in Action读书笔记5(实战篇)——在directive中引入D3饼状图显示

    前言: "宁肯像种子一样等待  也不愿像疲惫的陀螺  旋转得那样勉强" 这是前几天在查资料无意间看到的一位园友的签名,看完后又读了两遍,觉得很有味道.后来一寻根究底才知这是出资大诗 ...

  4. AngularJS in Action读书笔记4(实战篇)——创建Statistic模块

    个人感觉<Angularjs in action>这本书写的很好,很流畅,循序渐进,深入浅出,关键是结合了一个托管于Github上的实例讲解的,有代码可查,对于初学者应该是个不错的途径.( ...

  5. 读书笔记---HTML5实战 MARCO CASARIO(后六章)

    画布叠加:用CSS的z-index和position; 第八章 HTML5通信API ①XMLHTTPREQUEST是JS中用于服务器交互的API; ②用HTML5的POSTMESSAGE API实现 ...

  6. 读书笔记---HTML5实战 MARCO CASARIO(前六章)

    1:行内元素转化为块级元素①display②position③float; 2:语义化; 3:微数据itemscope/itemprop/itemtype; 4:新表单元素,form外的表单元素可以用 ...

  7. Mysql实战45讲 06讲全局锁和表锁:给表加个字段怎么有这么多阻碍 极客时间 读书笔记

    Mysql实战45讲 极客时间 读书笔记 Mysql实战45讲 极客时间 读书笔记 笔记体会: 根据加锁范围:MySQL里面的锁可以分为:全局锁.表级锁.行级锁 一.全局锁:对整个数据库实例加锁.My ...

  8. 《Apache kafka实战》读书笔记-kafka集群监控工具

    <Apache kafka实战>读书笔记-kafka集群监控工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如官网所述,Kafka使用基于yammer metric ...

  9. 【读书笔记《Bootstrap 实战》】6.单页营销网站

    我们已经掌握了很多实用 Bootstrap  的重要技能.现在,是时候拿出更多的创意来帮助客户实现他们全方位在线营销的愿望了.此次将带领大家做一个漂亮的单页高端营销网站. 主要任务如下: □ 一个大型 ...

随机推荐

  1. vuejs开发环境搭建

    前言:现在前端最火的是3个框架:react,vue,angular.可以说着是哪个框架大大改变了前端的地位.相对于angular来说.vue同样拥有丰富的指令,并且都是典型的MVC框架,但是vue比较 ...

  2. java基础---->多线程之Runnable(一)

    java线程的创建有两种方式,这里我们通过简单的实例来学习一下.一切都明明白白,但我们仍匆匆错过,因为你相信命运,因为我怀疑生活. java中多线程的创建 一.通过继承Thread类来创建多线程 pu ...

  3. JavaWeb温习之HttpServletResquest对象

    HttpServletRequest对象代表客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP请求头中的所有信息都封装在这个对象中,通过这个对象提供的方法,可以获得客户端请求的所有信息. 1 ...

  4. ZoomIt v4.5

    https://technet.microsoft.com/en-us/sysinternals/bb897434.aspx zoomIt: 演示必备辅助软件 ZoomIt(主页|介绍)是一款非常实用 ...

  5. 我对shiro的初步认识

    package com.shiro; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.*; import or ...

  6. Quartz学习记录

    参考资料: 官方网站 Quartz使用总结

  7. 由于dns服务为启动导致的GI集群启动故障

    1.物业由于突然断电导致grid集群重新启动后rac数据库无法正常启动,对集群进行检查,结果如下,发现其中有4个数据库状态为instance shutdown.[root@node1 ~]# su - ...

  8. fastBoot使用

    fastBoot使用 作者:李老师,华清远见嵌入式学院讲师. 1.1. 使用Fastboot方式烧写 在安卓手机中Fastboot是一种比Recovery更底层的刷机模式.Fastboot是一种线刷, ...

  9. What are Traceroute, Ping, Telnet and Nslookup commands?

    https://help.maximumasp.com/KB/a445/connectivity-testing-with-ping-telnet-tracert-and-pathping-.aspx ...

  10. 【css a标签 鼠标悬浮时变手型】

    <a href="#" style="cursor:pointer">