您的位置:首页 > 编程语言 > Java开发

Spring项目使用JUnit4进行测试

2017-02-10 11:22 441 查看
作为java web程序员,我们经常要写junit测试,在不启动整个web项目的情况下,测试自己的service实现或者是dao实现,我们来充分利用下junit4的强大功能。

1. 新建一个junit4的测试类

测试类要继承
AbstractJUnit4SpringContextTests
类,该父类能够调用spring context

2. 该junit测试类的源码

package com.songyh.modules.system.service;

import com.songyh.modules.system.entity.SysRole;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;

import java.util.List;

/**
* 系统角色API测试类
* Created by songyh on 2017/2/10.
*/
@ContextConfiguration(locations = {"classpath:spring/spring-context*.xml"})
public class SysRoleServiceTest extends AbstractJUnit4SpringContextTests {
//注入
@Autowired
private SysRoleService sysRoleService;
/**
* 执行测试,就会执行有@Test注解的方法,相当于普通java类的main方法
* 该实例中可以直接调用spring已经注入的bean即sysRoleService
*/
@Test
public void testGetSysRoleByUserId() {
String userId = "867ccabfed5e40e480438f72dcab7126";
List<SysRole> sysRoleList = sysRoleService.getSysRoleByUserId(userId);
for(SysRole sysRole : sysRoleList) {
System.out.println(sysRole.getRoleName());
}
}
}


3.测试类代码说明

@ContextConfiguration(locations = {"classpath:spring/spring-context*.xml"})
public class SysRoleServiceTest extends AbstractJUnit4SpringContextTests {


以上注解,会将spring context的bean全部注册到context中,这样在junit类中就可以随意使用spring 相关的实体bean对象了。当然我们的测试类必须继承
AbstractJUnit4SpringContextTests


注意:

如果是maven多模块项目,很可能测试类和spring配置文件不在一个模块下,这种需要拷贝资源文件到测试的模块中(我只找到这种方法,如果有其他方法请指教)

4. 运行该junit

执行测试,有@Test注解的方法,就相当于普通java类的main方法,每个junit测试类至少要有一个@test注解的方法,可以有多个,多个则按顺序执行方法。

@Test
public void testGetSysRoleByUserId() {
String userId = "867ccabfed5e40e480438f72dcab7126";
List<SysRole> sysRoleList = sysRoleService.getSysRoleByUserId(userId);
for(SysRole sysRole : sysRoleList) {
System.out.println(sysRole.getRoleName());
}
}


转自: http://www.codingyun.com/article/80.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java junit