文档章节

java特训第二课

旺仔没馒头
 旺仔没馒头
发布于 2017/09/03 16:39
字数 715
阅读 5
收藏 0

测试驱动开发是什么

   测试驱动是一种开发形式:
   1.编写测试代码
   2.除非存在相关测试,否则不编写任何的产品代码
   3.由测试来决定要编写什么样的代码
   4.要求维护一套详尽的测试集

测试驱动开发所应该达到的目标

   clean code that work
   测试驱动开发就是为了让代码整洁可用,其实现的规则如下:
   1.只有测试失败时我们才去修改代码
   2.消除重复设计,优化设计结构
   测试驱动开发的优点
   1.能够保证编写测试用例
   2.使得程序员获得满足感,从而始终如一的编写测试代码
   3.有助于澄清接口和行为的细节
   4.可证明、可再现、自动的验证
   5.改变事物的信息

测试驱动开发是一种开发风格

   应该做到如下要求:
   1.在写产品代码之前,应该先写它的单元测试
   2.没有单元测试的class不允许作为产品代码
   3.单元测试例子决定了如何写产品代码
   4.不断的成功运行所有的单元测试例子
   5.不断的完善单元测试的例子

怎样做

   1.再开发一个新的功能之前首先确定你要做什么(不是要如何做!!)
   比如说一个论坛的增加用户的功能,我们需要又一个method来增加一个用户:public void addAccount( Account account )当然包括成功增加一个用户(在数据库中插入一条纪录)还包括如果已经由一个相同的用户,应该返回一个用户已存在的消息OK,我们知道这个method中的这段代码要做什么,而且这段代码也足够简单。
   2.然后为这个功能(Method)写单元测试例子( Unit Test )单元测试例子要覆盖这个Method的 “做什么”。所以我们至少有了两个测试例子:
   Test Case 1: 测试成功增加一个用户
   Test Case 2: 测试增加一个已存在的用户其他边缘情况测试:
   Test Case 3: 传入的Account对象为NULL
   3.写Production代码
   4.运行单元测试,假如没有通过继续修改Production代码,直到通过为止。

© 著作权归作者所有

共有 人打赏支持
上一篇: java特训第三课
下一篇: java特训第一课
旺仔没馒头
粉丝 4
博文 21
码字总数 17060
作品 0
济南
程序员
私信 提问
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
2018/11/15
131
0
珍藏收集,献出这份年薪50W的阿里Java高级开发内训手册

一、源码阅读 二、分布式架构总纲 分布式应用场景解决方案 三、微服务架构纲要

Java架构
2018/12/12
0
0
【粉丝福利】-JavaScript+jquery+html5特效实战,全方位逻辑思维特训!

【粉丝福利】-JavaScript+jquery+html5特效实战,全方位逻辑思维特训! 本次OSChina开源中国社区 联合 web前端学院,推出的 100特效特训,希望大家喜欢!! 获取免费听课权限时间:2017-...

小悦悦
2017/03/23
775
0
刚发布!Python一二线城市月薪15k起!12月再夺语言榜首

干掉Java,成为榜首 在最新公布的 PYPL 12 月编程语言指数榜中,Python 以 25.36% 的份额甩开Java(21.56 %),并逐渐与 Java 拉开差距。 实际上,这已经不是Python第一次超越Java了!早在5...

AI科技大本营
2018/12/23
0
0
刚发布!Python 一二线城市月薪 15K 起!12 月再夺语言榜首

干掉Java,成为榜首 在最新公布的PYPL 12月编程语言指数榜中,Python以 25.36%的份额甩开Java(21.56 %),并逐渐与Java拉开差距。 实际上,这已经不是Python第一次超越Java了!早在5 月,P...

CSDN资讯
2018/12/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
1
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部