SSH的测试工具——JUnit4

来源:互联网 发布:javascript 数据库 编辑:程序博客网 时间:2024/04/26 16:59

说起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注解代表测试用例默认的测试方法,启动时默认执行该方法@Testpublic void userTest() {User u = userDao.findUserAll().get(0);System.out.println("用户的id=" + u.getId());}}

测试结果:



原创粉丝点击