博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于spring项目的单例测试
阅读量:7054 次
发布时间:2019-06-28

本文共 1802 字,大约阅读时间需要 6 分钟。

hot3.png

这里是小知识啦,因为每次都要找以前的项目,这里记录一下,省得以后麻烦。

我们在做spring项目的时候,启动的时候spring容器肯定是要注入很多的类,这些在单例的时候比较麻烦,要启动整个项目,加载spring容器才能正确处理各个实例之间的依赖关系。

这里我们使用junit4来做单例猜测,相比于junit3的好处就是,junit4加入大量的注解功能,使得测试起来更加的方便快捷。

首先我们需要两个主要的jar包:junit4、spring-test,当然spring其他需要的包这里就不在赘述,按照自己的项目去添加即可。

比如说我要测试这个方法:

@Servicepublic class EmployeeService {    @Autowired    private EmployeeMapper employeeMapper;    public Employee findEmployee(int id) {        return employeeMapper.selectById(id);    }}

因为这个方法里面有依赖关系,所以要启动spring的容器。还有的人肯定说我们不需要依赖,直接new嘛,这种情况在依赖关系比较复杂的情况下并没有卵用,太麻烦了。所以我是这么做的:

import com.yangbo.one.base.BaseTest;import com.yangbo.one.persistence.model.Employee;import lombok.extern.slf4j.Slf4j;import org.junit.Test;import org.springframework.beans.factory.annotation.Autowired;@Slf4jpublic class UserServiceTest extends BaseTest {    @Autowired    private EmployeeService employeeService;    @Test    public void testFindEmployee() throws Exception {        Employee employee = employeeService.findEmployee(111);        System.out.println("--------------------" + employee);        log.info("用户{}是个大傻逼,哈哈……",employee.getName());    }}

这里面有个继承关系,是为了我在新建其他测试类的时候,不用每次都去加注解,总之就是为了省事。所以这里的继承的BaseTest是这么写的,这个是关键,如下:

import junit.framework.TestCase;import org.junit.runner.RunWith;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration(locations = "classpath:applicationContext.xml")public class BaseTest extends TestCase{}

一切就绪,只需要右键运行testEmployeeTest的方法即可,运行的结果如下:

2015-11-03 17:18:15,917 INFO [main] c.yangbo.one.service.UserServiceTest [UserServiceTest.java : 19] 用户sfadsfa是个大傻逼,哈哈……

至此,单元测试OK。简单吧,我也不知道为什么我每次都回去找旧项目,可能是因为只是知其然还不知其所以然的原因吧!

转载于:https://my.oschina.net/u/1757225/blog/525431

你可能感兴趣的文章
Jenkins安装配置
查看>>
vmware12下对虚拟机ubuntu14.10系统所在分区sda1进行磁盘扩容
查看>>
EJB到底是什么,真的那么神秘吗??
查看>>
UI开发工具
查看>>
广义表 (五)
查看>>
Swift中NSTimer定时器的使用
查看>>
本周游戏推荐:暗影格斗2:shandow fight 2
查看>>
/var/log目录下的20个Linux日志文件功能详解
查看>>
我的友情链接
查看>>
去除中国菜刀密码的方法
查看>>
PHP下载断点续传 转
查看>>
【新手】【转】如何学习java程序设计
查看>>
企业邮箱发送不到sina、hotmail等解决
查看>>
如果finalize()抛出异常会怎样?
查看>>
自己的微博
查看>>
php取整函数ceil,floor,round,intval函数的区别
查看>>
NH5-Nhibernate映射中的三种关系
查看>>
SpringBoot项目启动时自动执行指定方法
查看>>
设计模式(行为型模式)——命令模式(Command)
查看>>
vi常用命令
查看>>