java-Web项目开发中Spring整合Junit单元测试
做Web开发,发现通过spring进行对象管理之后,做测试变得复杂了。
因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得。
如果每次都要整个业务流做的差不多了再去测试,这样效率很低,也很麻烦。如果单独去写一个测试用类,这样太繁琐了。
于是想起Spring有一个测试框架,能够整合JUnit进行测试!
1. 加入依赖的jar包
引入一个spring整合Junit的jar包.(工程中需要有Junit的环境)
*
2. 创建测试源目录和包
在此,推荐创建一个和src平级的源文件目录,因为src内的类都是为日后产品准备的,而此处的类仅仅用于测试。而包的名称可以和src中的目录同名,这样由于在test源目录中,所以不会有冲突,而且名称又一模一样,更方便检索。
3. 创建测试类
:使用注解开发:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")//配置文件的路径
//测试类
public
//属性对象的注入
@Resource(name="userService")
private
//测试方法
@Test
public
userService.save();
}
}
package
com.taotao.controller;
import
java.util.List;
import
org.junit.Test;
import
org.springframework.context.ApplicationContext;
import
org.springframework.context.support.ClassPathXmlApplicationContext;
import
com.github.pagehelper.PageHelper;
import
com.github.pagehelper.PageInfo;
import
com.taotao.mapper.TbItemMapper;
import
com.taotao.pojo.TbItem;
import
com.taotao.pojo.TbItemExample;
public class
TestPageHelper {
@Test
public void testPageHelper() {
ApplicationContext applicationContext = new
ClassPathXmlApplicationContext("classpath:spring/applicationContext-*.xml");
//从spring容器中获得Mapper的代理对象
TbItemMapper mapper =
applicationContext.getBean(TbItemMapper.class);
//执行查询,并分页
TbItemExample example = new TbItemExample();
//分页处理
PageHelper.startPage(2, 10);
//取商品列表
for (TbItem tbItem : list) {
System.out.println(tbItem.getTitle());
}
//取分页信息
long total = pageInfo.getTotal();
System.out.println("共有商品:"+ total);
}