文档章节

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特训第一课
旺仔没馒头
粉丝 2
博文 18
码字总数 13798
作品 0
济南
程序员
私信 提问
Java研发大学毕业后为何找不到理想的工作

现在大学生在大学学习Java技术,毕业后直接工作,我想在大家心里这只是再平常不过的事情了,可是为啥刚一毕业的Java应聘工程师会遭到各个研发企业的拒绝,这是刚毕业的每个大学生心中的疑虑,...

我爱编程学习
06/07
0
0
成都大数据开发学习路线是什么?大数据开发学习难不难?

现在想学习大数据开发课程的朋友越来越多,当然其中有很多都是零基础,对编程语言也不是很了解。那么零基础能不能学习大数据开发呢?答案是肯定的。当然想要通过自学基本上是不可能的,不过可...

加米谷大数据
07/30
0
0
几周内搞定Java的10个方法

不要将Java与JavaScript弄混了,Java的目标是“一次编译,到处调试”(呃,不对,是“到处运行”)。简单来说,就是Java程序可以直接在任何设备上运行。 Java语言是什么? 不管我们是否意识到...

拉偶有所依
2015/03/11
0
0
同样是搞Java,年薪15W和50W的到底差在哪里?

  在这个IT系统动辄就是上亿流量的时代,Java作为大数据时代应用最广泛的语言,诞生了一批又一批的新技术,包括HBase、Hadoop、MQ、Netty、SpringCloud等等 。   一些独角兽公司以及腾讯...

java进阶架构师
11/07
0
0
给代码减负,会RIA的程序猿你伤不起!

身为一名求学者,不得不说,在漫长的等待中,我终于盼到了RIA的实训课程。 其实起先我并不知道什么是RIA,之所以参与进来是因为之前在中达金桥学过LINUX的同学告诉我,他们现在开办了个新的培...

ZDJQ
2011/07/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS 安装PHP5和PHP7

安装PHP5 下载解压二进制包 [root@test-a src]# cd /usr/local/src/[root@test-a src]# wget http://cn2.php.net/distributions/php-5.6.32.tar.bz2[root@test-a src]# tar jxvf php-5.6......

野雪球
今天
3
0
windows上类似dnsmasq的软件Dual DHCP DNS Server

官网地址:http://dhcp-dns-server.sourceforge.net/官网定向的下载地址:https://sourceforge.net/projects/dhcp-dns-server/files/ 设置参考地址:http://blog.51cto.com/zhukeqiang/18264......

xueyuse0012
今天
3
0
LinkedHashMap源码解析

前言 HashMap中的元素时无序的,也就是说遍历HashMap的时候,顺序和放入的顺序是不一样的。 如果需要有序的Map,就可以采用LinkedHashMap. LinkedHashMap通过维护一个包含所有元素的双向链表,...

grace_233
今天
3
0
初识flask

文档 0.10.1版本 http://www.pythondoc.com/flask/index.html 1.0.2版本 https://dormousehole.readthedocs.io/en/latest/ 安装flask $ pip3 install flaskCollecting flask Downloading......

yimingkeji
昨天
5
0
Akka系统《sixteen》译

Actor是一个封装状态(state)和行为(behavior)的对象,它们只通过交换消息通信(放入收件人邮箱的邮件)。从某种意义上说,Actor是最严格的面向对象编程形式,但它更适合将他们视为人:在与Act...

woshixin
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部