Java之旅hibernate(6)——Junit不为人知的故事

  说道Junit,我们首先不得不说測试的重要性。一个健壮的软件肯定是经过不断地的測试后才干终于被应用的。在測试的过程中能够发现非常多不稳定性或者说是存在一定的bug等等。这些都能够在測试阶段发现。而不会被推到被用户真正的使用的时候。避免了不良好的用户体验。

 当我们看java源程序的时候。总是会看到这种一个目录,名字为test,好奇的你是否点开过呢?

 没错,这里就是我们书写的測试程序,使得在团队开发过程中。彼此的交互更加的可靠和稳定。

 那么Junti详细是什么呢?

 1.       Junit

  要想在Junit中使用。首先必须引入Junit包,网上下载一个JUnit包,后缀名为 jar . 打开eclipse  ,新建项目。项目建好后在项目名称上单击鼠标右键,选择build path-->Config build path ,在properties for....窗体中左边选择Java Build Path 右边选择Libraries,再点击Add External
Jars 。找到你下载的那个JUnit包。点击打开,然后点击OK。即可了。

  ?  建立測试的目录,建立的目录是“Source Folder”类型的

  ?  新建一个类,用于測试“UserManager”

  ?  创建測试程序(Junit是使用预期值和实际值的对照)

  ?  结果

 

  这是大致的一个样例,详细的大家上网收集资料。

 2.       不为人知——组合模式

  前一阵子,我们开展了设计模式演讲大赛,非常荣幸的我被选为组长。我们组负责的是组合模式。看到这个模式之后,自己首先是联系了生活,看看生活中存在哪些样例。

  组合模式图:

  ?  组合模式生活篇

 我们每一个家庭都是有家谱的,那么家谱就是一个组合模式,怎么说呢?

  对比上面的组合模式图:最上面是爸爸,爸爸和妈妈结婚后就有了一个女儿和儿子。而女儿是无法传宗接代的。可是儿子能够。儿子以下又是能够分的,整个组合成一个家族。

  此外像窗外的树木,存在主干和枝干以及树叶等等,还有我们操作系统中的文件和目录等等,这些都是我们生活中的常见了,这里不再说了。

  ?  组合模式精彩篇

  无意看到一些资料,发现我们经常使用的单元測试“Junit”居然是一种模式。宛如哥伦布发现新大陆一样,我的心里无比的欣喜。

如今让我们一层层的揭开这神奇的面纱吧。

  在我们书写測试程序的时候,我们常常书写这种话:

public class test extends TestCase {

 

}

  事实上TestCase并非一个单独存在的。它事实上是实现了某一个接口的,这个接口就是Test,此外除了TestCase外,我们另一个測试的类就是TestSuite。它事实上是囊括了TestCase的一个集合。这样三者的关系就出来了。我们看看吧。

   TestCase

  定义:abstract class TestCase extends Assert implements Test 继承了Assert类并且实现了Test接口。并且是个抽象类。

   TestSuite

  定义:class TestSuite implements Test;  Test接口的实现类,和TestCase一样. 可是TestSuite是一系列testcase的集合,将全部要执行的testcase add到TestSuite。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

     假设说前面的一个是单个的測试的话,而后面的那个是一个组合的測试,组合測试不只能够加入一个測试类中的多个測试方法。并且能够加入多个測试类。这么一说是不是特别像组合模式啊?

      參照上面的组合模式图,画出我们的图形是

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" >

      我们学习组合模式的时候。事实上Junit与树节点的那个图是非常相似的,TestCase相当于叶子节点,它的以下是不能再次进行加入的。而TestSuite不一样,它是一个枝干的节点,它的以下是能够再次进行加入的,与我们学习过的《大话设计模式》上的一样,TestSuite不不过能够加入TestCase,也是能够加入TestSuite。由于其添加一个对象的时候,事实上是相当于添加了一个Test。

 3.       小结

  这是我抛出的一个引子。至于使用还是须要大家去实践,有兴趣的能够去看看~

 

时间: 2024-12-28 21:31:30

Java之旅hibernate(6)——Junit不为人知的故事的相关文章

Java之旅hibernate(8)——基本关系映射

何为关系,何为映射,关系这个词想必大家都不陌生.比方你和老师之间是师生关系,你和父母之间是父子或者父女(母子或者母女关系). 关系是存在某种联系物体之间产生的.什么都是可能的.比方你和工具,你仅仅能使用工具,可是工具不能使用你.这种关系是单向的.可是换种说法.你拥有工具,工具也属于你,那么这种关系就是双向的了,此外一个人能够拥有多个工具,而且多个工具也能够是属于一个人的.还有就是多个人拥有多个工具,而且多个工具也属于人,依据这些特征,我们将关系分为下面几种: 单向关系: one2one,(一对一

Java之旅hibernate(3)——第一个hibernate的样例

在解说样例之前.我们首先来理解一下hibernate的工作原理.理解原理将会帮助我们更好地理解hibernate和运用hibernate. 1.      原理图 利用hibernate进行数据的持久化操作,必定离不开与数据库打交道.依据上张图我们来看看hibernate是怎样工作的. watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gra

JAVA之旅(七)——final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展

JAVA之旅(七)--final关键字 , 抽象类abstract,模板方法模式,接口interface,implements,特点,扩展 OK,我们继续学习JAVA,美滋滋的 一.final 我们来聊聊final这个关键字 final可以修饰类,方法和变量 final修饰的类不可以被继承 final修饰的方法不可以被覆盖 final修饰的变量是一个常量,只能被赋值一次 内部类只能访问被final修饰的局部变量 final,故名思意,就是最终的意思,由以上的五种特性,不过final的出现,也是有

Java之旅--关于多线程

关于多线程的知识,有非常多的资料可以参考.这里稍微总结一下,以求加深记忆. 关于多线程在日常工作中的使用:对于大多数的日常应用系统,比如各种管理系统,可能根本不需要深入了解,仅仅知道Thread/Runnable就够了:如果是需要很多计算任务的系统,比如推荐系统中各种中间数据的计算,对多线程的使用就较为频繁,也需要进行一下稍微深入的研究. ThreadLocal与synchronized 区别ThreadLocal 与 synchronized ThreadLocal是一个线程隔离(或者说是线程

JAVA之旅(二十二)——Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习

JAVA之旅(二十二)--Map概述,子类对象特点,共性方法,keySet,entrySet,Map小练习 继续坚持下去吧,各位骚年们! 事实上,我们的数据结构,只剩下这个Map的知识点了,平时开发中,也是能看到他的,所以还是非常值得去学习的一个知识点的,我们直接开车了 一.Map概述 泛型< k,v> 键值对,映射关系 基本特点 该集合存储键值对,是一对一对往里存,而且要保证键的唯一性 1.添加 put(key ,values) putAll() 2.删除 clear() remove(ob

JAVA之旅(三十四)——自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫

JAVA之旅(三十四)--自定义服务端,URLConnection,正则表达式特点,匹配,切割,替换,获取,网页爬虫 我们接着来说网络编程,TCP 一.自定义服务端 我们直接写一个服务端,让本机去连接,可以看到什么样的效果 package com.lgl.socket; import java.io.IOException; import java.io.PrintWriter; import java.net.ServerSocket; import java.net.Socket; publ

JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块

JAVA之旅(四)--面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造代码块 加油吧,节奏得快点了 1.概述 上篇幅也是讲了这点,这篇幅就着重的讲一下思想和案例 就拿买电脑来说吧,首先,你不懂电脑,你去电脑城买电脑,和大象装冰箱里一样,是什么步骤?咨询 砍价 ,谈妥了就那电脑走人,对吧,这就是面向过程的思想,而面向对象是:你有一个哥们,他懂电脑,什么都会,你只要带他去,就行,你这个哥们就是对象,在JAVA中,我们就是操作一个对象去完成各种各样的操作的,这就是面向对

JAVA之旅(三十三)——TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录

JAVA之旅(三十三)--TCP传输,互相(伤害)传输,复制文件,上传图片,多并发上传,多并发登录 我们继续网络编程 一.TCP 说完UDP,我们就来说下我们应该重点掌握的TCP了 TCP传输 Socket和ServiceSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输 关闭Socket 同样的,我们的客户端和服务端都是两个独立的应用 我们通过查阅API文档发现,该对象在建立的时候,就可以去连接指定主机,因为tcp是面向连接的,所以在建立socket服务时,

JAVA之旅

JAVA之旅合集 JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 JAVA之旅(二)——if,switch,for,while,do while,语句嵌套,流程控制break , continue ,函数,重载的示例总结 JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 JAVA之旅(四)——面向对象思想,成员/局部变量,匿名对象,封装 , private,构造方法,构造