单元测试利器之Jtester

本文详细介绍了JTester单元测试框架的使用方法,包括如何导入依赖,如何配置测试类和测试方法,以及JTester特有的八大特性,如集成jmock功能、fluentinterface断言、数据测试等,为开发者提供了一套高效、强大的单元测试解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

名词解释:

  • 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 框架提供的强大的断言;
	}

}

jTester使用指南》jTester单元测试的开发文档,作者吴大瑞,pdf 格式,大小 1.1MB。本书带有 pdf 书签,方便读者阅读。 目录: jTester使用指南 目录 第 1 章 安装jtester maven用户安装 ant用户安装 安装TestNG插件 编写一个简单的测试用例 maven方式运行 第 2 章 TestNG语法简介 TestNg注解介绍 TestNg 参数化测试 异常测试 TestNg分组测试和suite文件编写 第 3 章 jTester断言介绍 什么是测试断言? jTester断言基本介绍 jTester断言语法详解 断言String对象 判断字符串是否等于期望值 字符串的模糊判断 断言子字符串 其它字符串断言 Java基本类型的断言 对普通PoJo对象进行断言 判断2个PoJo对象是否相等 对2个PoJo对象指定的属性进行比较 断言Map对象 断言Collection对象或Array对象 第 4 章 使用DataMap准备和验证数据 为什么要使用DataMap? 配置jtester.properties文件 DataMap语法详解 对指定表进行数据插入操作 用DataMap插入多条数据 DataMap的数据提供器功能 准备数据的一些补充 对指定表进行数据验证操作 其他数据库操作 多数据库测试 使用eclipse插件 第 5 章 在测试中集成Spring 加载spring容器 @AutoBeanInject让框架自动查找和注册需要的bean @AutoBeanInject规则详解 Spring Bean依赖项查找规则 特殊实现类的bean注册 自动注册的bean如何实现spring的init-method方法 声明bean的简单属性 使用@SpringBeanFrom DIY你需要的bean Spring模块注解 第 6 章 反射调用私有方法或JDK代理的方法 调用私有方法 访问私有变量 使用反射方式构造对象实例 第 7 章 在测试代码中使用Mock 静态mock,new MockUp的使用 mock构造函数和静态代码块 new MockUp和spring的集成 针对静态mock做断言 动态mock,new Expectations的使用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值