Java之旅hibernate——Junit不为人知的故事
Posted jzdwajue
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java之旅hibernate——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。
假设说前面的一个是单个的測试的话,而后面的那个是一个组合的測试,组合測试不只能够加入一个測试类中的多个測试方法。并且能够加入多个測试类。这么一说是不是特别像组合模式啊?
參照上面的组合模式图,画出我们的图形是
我们学习组合模式的时候。事实上Junit与树节点的那个图是非常相似的,TestCase相当于叶子节点,它的以下是不能再次进行加入的。而TestSuite不一样,它是一个枝干的节点,它的以下是能够再次进行加入的,与我们学习过的《大话设计模式》上的一样,TestSuite不不过能够加入TestCase,也是能够加入TestSuite。由于其添加一个对象的时候,事实上是相当于添加了一个Test。
3. 小结
这是我抛出的一个引子。至于使用还是须要大家去实践,有兴趣的能够去看看~
以上是关于Java之旅hibernate——Junit不为人知的故事的主要内容,如果未能解决你的问题,请参考以下文章
HSQLDB + JUnit + Hibernate:java.sql.SQLException:无效的模式名称
Java之旅hibernate——第一个hibernate的样例
Java Hibernate LazyInitializationException 仅在仅使用 JUnit 运行时出现