文档章节

java特训第二课

旺仔没馒头
 旺仔没馒头
发布于 2017/09/03 16:39
字数 715
阅读 5
收藏 0
点赞 0
评论 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代码,直到通过为止。

© 著作权归作者所有

共有 人打赏支持
旺仔没馒头
粉丝 2
博文 15
码字总数 10924
作品 0
潍坊
程序员
Java研发大学毕业后为何找不到理想的工作

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

我爱编程学习
06/07
0
0
几周内搞定Java的10个方法

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

拉偶有所依
2015/03/11
0
0
给代码减负,会RIA的程序猿你伤不起!

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

ZDJQ
2011/07/01
0
0
理解ThreadLocal 2

摘自《Spring 揭密》 王福强著 人民邮电出版社 1 ThreadLocal的背景 单单从程序层面来看,我们编写的代码实际上是在管理系统中各个对象的相关状态,如果不能对各个对象的状态的访问进行合理的...

i33
2012/03/22
0
0
2018年暑假第一周周总结报告

一眨眼,暑假第一周过去了。这一周大部分时间都是在学校度过的。在7月14日之前,我在学校宿舍待着,便开始刷我的网络课程。虽然这些课看上去不是太重要,但从中也学到了不少知识。 周一,我对...

寂天风
07/15
0
0
学java还是javascript好?哪个更有前途?

  对于哪种语言好这种问题,其实并没有固定的答案,最重要的还是 兴趣!兴趣!兴趣!重要的事情说三遍。无论做什么开发,永远要以兴趣来驱动自己学习。 先大致的说一下,Java学习是一个需要...

W3Cschool小编
04/23
0
0
C++之父评论C++与Java

如 果人们非要拿C++和Java来作比较,我建议他们去阅读The Design and Evolution of C++,看看C++为什么是今天这个样子,用我在设计C++时遵从的原则来检验这两种语言。这些原则与SUN的Java开发...

zplswf
2012/04/09
0
0
Ubuntu14.04麒麟版安装:Netbeans,Java运行环境以及netbeans字体模糊问题

一.配置java运行环境: netbeans 是基于java开发的,要安装运行neabeans必需要先配置java运行环境。java又分为以下两种(任选其一即可): JRE,它是你运行一个基于Java语言应用程序的所正常需...

鬼哥哥
2014/10/30
0
1
新手怎么学习java?学Java要学哪些内容?

学习任何一门技术之前,兴趣最重要。在学校的时候一直觉得自己在学计算机编程语言,学习了很多,但每门语言都停留在知识边缘地带,都没深入到它们的精华部分。我经朋友介绍有免费的学习Java课...

糖宝_d864
07/02
0
0
云栖社区专家系列课——Java必修课第一讲

本节课为 Java必修课第一讲。在本节课中,最课程创始人、微软MVP陆敏枝为了大家介绍了当前Java行业的IT人才供需情况、Java基本语法、JDK的下载与安装、Java环境变量的配置以及第一个Java程序...

笑傲江湖lcx
07/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CentOS “Destination Host Unreachable”问题解决办法

挑战极速安装CentOS时遇到局域网主机不能通信的情况: [root@zjd network-scripts]# ping 8.8.8.8PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.64 bytes from 8.8.8.8: icmp_seq=1 ttl=......

wffger
13分钟前
0
0
CentoOS6.6安装netcat

CentOS下安装netcat 使用zookeeper过程中,需要监控集群状态。在使用四字命令时(echo conf | nc localhost 2181),报出如下错误:-bash: netcat: command not found。 我的系统是CentOS 6....

ghou-靠墙哭
24分钟前
0
0
es6之解构赋值巧用

ES6 允许按照一定模式,从数组、对象等中提取值,对变量进行赋值,这被称为解构赋值。 如何进行解构赋值我这里就不赘述,本篇文章主要是将解构赋值的巧妙使用之处。 1、交互变量的值 常用交互...

秋季长青
29分钟前
0
0
Elasitcsearch High Level Rest Client学习笔记(三)批量api

Bulk Request BulkRequest可以在一起从请求执行批量添加、更新和删除,至少需要添加一个操作 BulkRequest request = new BulkRequest(); //创建BulkRequestrequest.add(new IndexRequest("...

木子SMZ
32分钟前
0
0
mybatis-dynamic sql

OGNL expressions if 判断是否存在值 <select id="findActiveBlogLike" resultType="Blog"> SELECT * FROM BLOG WHERE state = ‘ACTIVE’ <if test="title != null"> AND title like #{tit......

writeademo
40分钟前
0
0
社交系统ThinkSNS+ V1.8.3更新播报

     研发发布版本号:1.8.3   本次版本于2018年7月16日发布   本次发布类型:新增功能、细节调整与优化   社交系统ThinkSNSPlus更新体验:请于官网下载/安装最新版或联系QQ35159...

ThinkSNS账号
43分钟前
0
0
教育思考:选择编程是一场父母和孩子的和解[图]

教育思考:选择编程是一场父母和孩子的和解[图]: 之前有个很热的段子是这样讲的:深夜十点的时候,某小区一女子大声喊叫“什么关系?啊?!到底什么关系?你说!”最后发现原来是一位妈妈陪...

原创小博客
44分钟前
0
0
X64汇编之指令格式解析

最近由于项目组内要做特征码搜索的东西,便于去Hook一些未导出函数,你懂得...于是就闲着学习了一下x86/x64的汇编指令格式。x86的汇编指令格式请参照http://bbs.pediy.com/showthread.php?t...

simpower
46分钟前
0
0
rust 语法概要(只适合不熟悉时快速查阅使用,不适合理解其精髓。未完待续)

注意:本内容只适合快查,不适合理解精髓。精髓请研读 https://kaisery.github.io/trpl-zh-cn/foreword.html 基本数据类型 i8,i16,i32,i64,i128 u8,u16,u32,u64,u128 f32,f64 char bool:true...

捍卫机密
49分钟前
0
0
JS中严格模式和非严格模式

1,使用 严格模式的使用很简单,只有在代码首部加入字符串 "use strict"。必须在首部即首部指其前面没有任何有效js代码除注释,否则无效 2.注意事项 (1)不使用var声明变量严格模式中将不通...

AndyZhouX
50分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部