- 浏览: 516329 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
ben_wu007:
没数据库设计 而且这样要写代码 还是做成配数据库好 ...
使用AOP做权限控制 -
邢邢色色:
支持楼主,但这本书没有讲trident,有些过时了~到amaz ...
《Storm入门》中文版 -
java_web_hack1:
我在FunctionProvider中,获取的Property ...
在Osworkflow中使用PropertySet存储业务数据 -
greemranqq:
腾飞 ~。~
Java并发和多线程译者征集 -
fantasy:
leonevo 写道hi, 我也在设计cmdb. 我觉得基于传 ...
ITSM-CMDB数据库设计-四种方案任你选
名词解释:
- Junit:众所周知的单元测试。 官方网址:http://junit.sourceforge.net/。Junit从4.0开始提供基于注解的配置方式。
- Dbunit: 一个针对数据库测试的框架,通过Excel准备数据并插入数据库。官方地址:http://www.dbunit.org/
- TestNG:从字面上可以理解为下一代单元测试,和Junit的功能有一部分重叠和区别。TestNG也有Eclipse插件,官方地址http://testng.org/doc/index.html
- Unitiles: 让单元测试变得更加容易和可维护,Unitils构建在DBUnit之上并与JUnit和TestNG相结合。官方地址:http://www.unitils.org
- Jmock:JMock是一个JAVA开发包,它支持Mock(模拟)对象机制的TDD(测试驱动开发),官方地址:http://www.jmock.org/
什么是Jtester?
jTester是一个基于java的单元测试框架。开源地址:http://code.google.com/p/java-tester/。
为什么要用Jtester?
JTester是站在众多巨人肩膀上的单元测试框架,集成了Junit4.5,dbunit2.4.3,unitils2.2,JMOCK2.5和TestNg5.1这些优秀的开源框架,并在这些框架上做了扩展,使得单元测试更加方便和强大。
Jtester带给了我们什么?
1、在unitils的基础,集成了jmock功能。
2、在hamcrest断言的基础上,实现了fluent interface断言。
3、改造了jmock expectation参数断言为fluent interface形式
4、录制对象:提供了将普通的pojo对象序列化到文件,然后再从文件中反序列化回来的功能,用于在对象复杂的情况下,直接录制接口(远程接口)调用返回的对象,以供下次测试或调试使用。
5、数据测试:使用wiki代替xml来准备测试数据。比dbunit更快准备数据。
6、实现了更加丰富的断言。比junit的断言多。
7、提供了hibernate annotation环境下,直接使用内存数据库进行db测试。
8、提供了hibernate annotation环境下,Open Test in Session的实现。
以上8大特性来自于官方,我稍加了点说明和整理。
七步进入Jtester世界。 下面让我们花一个泡面的时间来学习下Jtester吧。
import mockit.NonStrict; import org.jtester.testng.JTester; import org.jtester.unitils.jmockit.MockedBean; import org.testng.annotations.Test; import org.unitils.spring.annotation.SpringApplicationContext; import org.unitils.spring.annotation.SpringBean; /** * Jtester测试例子,按照注释顺序学习 * * @author tengfei.fangtf */ @SpringApplicationContext( { "applicationContext.xml" }) // 1.@SpringApplicationContext:加载Spring 配置文件,所有测试相关的bean都在这个容器中; public class BusinessTestCase extends JTester// 2.JTester:要使用JTester // 提供的功能,需要继承此基类; { @SpringBean("businessService") // 3.@SpringBean:从容器中取出指定id 的bean 并注入到测试类中 private AppInternalService businessService; @MockedBean @NonStrict // 4.@Mocked @MockedBean:mock 出一个对象,并将该对象与Spring 容器结合,实现Autowired; private OneHessianServiceClient hessianClient; @Test(groups = { "FirstTestGroup" }) // 5.@Test;TestNG 的注解;指明此方法为一个TestCase; public void testBusinessNormal() { new Expectations() {// 6.设置mock 对象的期望返回值 { hessianClient.hessianServiceInvorke(anyString); result = "HH";// 那么执行这个方法,永远都返回HH } }; String returnResult = businessService .bussinessService("Sample Business!"); System.out.println("\n ---> " + returnResult);// 输出HH want.string(returnResult).notNull();// want:JTester 框架提供的强大的断言; } }
评论
14 楼
甄子丹
2011-02-12
Willam2004 写道
skydream 写道
@SpringApplicationContext( { "applicationContext.xml" })
spring bean都出来了,还是“单元测试”吗?
spring bean都出来了,还是“单元测试”吗?
恩,这个主要测试用于基于spring开发的应用,单元测试的对象实例化是由spring容器来做,而jtester可以通过注解的方式方便加载spring配置文件。节省了一定的编码量。
Spring-test这些功能都有,无非就是一个标注的差别,spring-test用的@ContextConfiguration
13 楼
Willam2004
2011-02-12
skydream 写道
@SpringApplicationContext( { "applicationContext.xml" })
spring bean都出来了,还是“单元测试”吗?
spring bean都出来了,还是“单元测试”吗?
恩,这个主要测试用于基于spring开发的应用,单元测试的对象实例化是由spring容器来做,而jtester可以通过注解的方式方便加载spring配置文件。节省了一定的编码量。
12 楼
Willam2004
2011-02-12
skydream 写道
有点迷惑,到底是Jmock还是Jmockit? 虽然只是几个字母的差别,但是这是两个完全不同的东西。还是说两个都在用?
jtester两个都有用,对其进行了封装和扩展。
11 楼
zouzou
2011-02-12
JTester没有接触过
10 楼
skydream
2011-02-12
有点迷惑,到底是Jmock还是Jmockit? 虽然只是几个字母的差别,但是这是两个完全不同的东西。还是说两个都在用?
9 楼
skydream
2011-02-12
@SpringApplicationContext( { "applicationContext.xml" })
spring bean都出来了,还是“单元测试”吗?
spring bean都出来了,还是“单元测试”吗?
8 楼
demonkind
2011-02-11
好东西,先收了。
7 楼
ka520888
2011-02-11
写得不是很详细,光看上面一个例子对于没接触过的新人来说还是有一定难度
6 楼
Willam2004
2011-02-09
maltose 写道
这个不是一个组织吧?
不是,jtester是一个测试框架,基于jmockit和testng,junit等测试框架,进行了封装和扩展。提供更方便的mock机制,以及更方便的断言方式等。
5 楼
maltose
2011-02-09
这个不是一个组织吧?
4 楼
fengjia10
2011-02-07
Jtester的Mock章节参看Jmockit,资料可以查看http://fengjia10.iteye.com/blog/798066
3 楼
fantasy
2011-02-05
yuanhongp 写道
新手,学习中,但是还是没有看明白说的是什么
哪里不明白?能详细说说吗?
2 楼
yuanhongp
2011-02-05
新手,学习中,但是还是没有看明白说的是什么
1 楼
Willam2004
2011-02-04
@NonStrict
这个是@Mocked的替代注释么?
这个是@Mocked的替代注释么?
发表评论
-
Google Guava官方教程(中文版)
2014-10-24 23:48 2967原文链接 译文链接 ... -
《Storm入门》中文版
2014-05-28 12:38 2356本文翻译自《Getting Star ... -
《Java 7 并发编程指南》中文版
2013-11-03 17:00 8983原文链接 作者: Javier Fernández Gonz ... -
Java NIO系列教程
2013-06-25 17:03 4191原文地址:http://tutorials.jenkov.c ... -
[并发译文]Java内存模型手册
2013-01-20 21:13 2166原文地址:http://gee.cs.oswego.edu/ ... -
[并发编程]聊聊并发
2012-12-23 03:44 2300聊聊并发系列文章是我在InfoQ发表的并发编程连载文 ... -
构建JSONP字符串
2012-09-21 10:28 23841.咱们需要一个这样的JSONP字符串 var cal ... -
聊聊并发(二)Java SE1.6中的Synchronized
2012-05-24 13:51 2116本文属于作者原创,原文发表于InfoQ中文站。 ... -
聊聊并发(一)深入分析Volatile的实现原理
2012-02-22 09:39 2864本文属于作者原创,原文发表于InfoQ中文站。 ... -
JVM运行时数据区(2011年6月的JVM规范)
2011-10-18 13:30 1973本文是《The Java Virtual Machine Sp ... -
AOP的实现机制
2011-10-18 10:15 7780附件中有本文的源代码和Pdf版。本文写的很长的原因,是不希望大 ... -
单点登录设计
2011-09-25 15:20 4706使用独立的单点登录应用程序来做单点登录,这样可扩展性和安全性会 ... -
Java虚拟机
2011-08-25 19:50 2021JVM JVM即Java虚拟机,它是一个想象中的机器,通 ... -
HttpClient
2011-08-16 15:27 5879HttpClient是一个模拟HTTP请求的工具类,目前我们在 ... -
Eclipse插件开发
2011-07-22 11:15 1892插件开发工具 我觉得进行RCP开发还是用专门的ID ... -
Opencomet之Session设计
2011-06-24 13:08 1996本文主要介绍Opencomet 里的Session设计。见附件 ... -
单元测试用例设计
2011-06-15 22:42 1563测试用例设计的原则是短,精和易读。 如何做到短: ... -
使用AOP做权限控制
2011-06-06 20:49 6752见附件! -
JAVA6可以使用字符串累加
2011-05-12 10:42 3801在JAVA6中,编译器会始终对字符串的累加操作做优化编译。 ... -
开发中的小心得
2011-02-04 01:13 1664总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ...
相关推荐
这个主要是初学者适用的,简单适用,赶快检查你的代码的高效性吧!
单元测试是软件开发过程中的重要环节,它能帮助开发者确保代码的质量和稳定性。JUnit4作为Java平台上最流行的单元测试框架,极大地简化...阅读《单元测试利器JUnit4.pdf》文档将更深入地理解这些概念,并提供实践指导。
单元测试利器 JUnit 4 完整实例图解 做测试的必看的文档 希望对您有帮助
JUnit 4单元测试利器 本文主要介绍了如何使用JUnit 4提供的各种功能开展有效的单元测试,并通过一个实例演示了如何使用Ant执行自动化的单元测试。下面是从中生成的相关知识点: 1. JUnit 4简介:JUnit是Java社区中...
《Moq:.NET单元测试的强大工具》 在软件开发过程中,单元测试是确保代码质量的重要环节。Moq,作为.NET平台上的一个流行的模拟框架,为开发者提供了强大的工具来进行单元测试。本文将深入探讨Moq的基本概念、用法...
已经编译好了debug版本和release版本,而且头文件也完全包含了 编译好的release版文件包含:cppunit.lib,cppunit_dll.lib,cppunit_dll.exp,cppunit_dll.dll,TestRunner.lib,TestRunner.exp,TestRunner.dll,...
JUnit 是一个广泛使用的 Java 单元测试框架,由 Erich Gamma 和 Kent Beck 创建,自 1997 年以来,它极大地简化了编写和执行单元测试的过程。JUnit 4 版本引入了 Java 5 的注解特性,使得测试代码更加简洁和易读。 ...
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典
[浪曦][原创]单元测试利器-Unit,经典中的经典