`

SSH的测试工具——JUnit4

 
阅读更多

说起JUnit,大家并不陌生,我之前也有过简单的介绍(JUnit简介),对于普通的项目测试,我们只需要继承TestCase即可,但是对于SSH我们需要考虑到SpringDI注入,这就需要用到我们今天所要讲的主题:JUnit4通过注解测试SSH

一、为什么使用JUnit4

我先来说下为什么之前的JUnit的简单继承TestCase的测试不能测试SSHWeb项目,大家都知道,我们启动Web项目时要先启动Tomcat,而在Tomcat的启动过程中会读取SSH的各个配置文件,实例化各个注入的类,所以我们的程序中直接使用注解就可以操作各个类。

但是如果是单击的继承TestCase的类,就缺少了读取配置文件的过程,所以当你调用一个类方法时会出现空指针错误,因为类没有实例化。

二、如何使用JUnit4

Junit4的特点就是使用注解,简化了我们的测试代码,测试之前,先引入spring-test.jarjunit4.4.jar包(因为spring.jarannotation.jar都已经引入了),junit4.4.jar一般在spring2.5.6里有,spring-test.jar如果没有可以在这里下载(文章末尾有这两个jar包的下载链接)。

下面是我对userDao的一个查询方法的测试:



import javax.annotation.Resource;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import com.core.permission.dao.IUserDao;
import com.core.permission.po.User;

//@RunWith(SpringJUnit4ClassRunner.class)用来声明在Spring环境下进行测试
//@ContextConfiguration(locations={……})用来声明配置文件,把项目中所有的关于ssh的配置文件都声明到里面
//(其实只需要声明与你测试相关的即可,为了以后对于action的测试,所以把所有的配置文件都加了进来)
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:com/core/config/hibernate.cfg.xml",
		"classpath:com/core/config/springConfig-core.xml",
		"classpath:com/core/config/springConfig-dao.xml",
		"classpath:com/core/config/springConfig-struts.xml",
		"classpath:com/core/config/springConfig.xml",
		"classpath:com/core/config/strutsConfig.xml"})
//类名也有限制,要是bean中注入的类的名字
public class userDao {
	//@Resource(name="userDao")代表根据名称来查找配置文件,userDao即为配置文件中的名称
	@Resource(name="userDao")
	private IUserDao<Long, User> userDao;
	
	//@Test注解代表测试用例默认的测试方法,启动时默认执行该方法
	@Test
	public void userTest() {
		User u = userDao.findUserAll().get(0);
		System.out.println("用户的id=" + u.getId());
	}
}

测试结果:



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics