在实际项目开发中经常会有单元测试,单元测试中经常会用类似这样的代码片段获取spring管理的bean

@Test
public void testSendEmail(){
MessageService messageService = (MessageService) BeanFactory.getInstance().getBean("messageService");
messageService.send();
}

 这样既不美观,又比较繁琐,spring引进了spring-test跟junit结合使用可以方便的得到spring bean

 因为在项目中适用maven管理依赖,先在pom.xml中添加依赖

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.version}</version>
</dependency>

 绑定spring配置文件路径

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = { "classpath:applicationContext.xml" })
public class BaseTest extends TestCase {
protected Logger logger = LoggerFactory.getLogger(getClass()); }
在单元测试类中集成 BaseTest

public class PostServiceTest extends BaseTest {
@Resource(name = "postService")
private PostService postService;


@Test
public void testQuery2LevelPostType() {
Map<Integer,Object> map= postService.query2LevelPostType();
System.out.println("data size:" + map.size());
  }
}

这样就可以在单元测试中轻松获取spring bean了,减少了繁琐的代码也增强了代码的可读性


 

单元测试使用spring注解获取bean的更多相关文章

  1. (转)Spring注解完成Bean的定义

    使用Spring注解完成Bean的定义 2010-04-21 16:48:54|  分类: spring|举报|字号 订阅     下载LOFTER客户端     通过@Autowired或@Reso ...

  2. 在Servlet中获取Spring注解的bean

    最近由于项目中出现了Servlet调用Spring的bean,由于整个项目中所有的bean均是注解方式完成,如@Service,@Repository,@Resource等,但是Spring的容器管理 ...

  3. 使用spring手动获取Bean的时候,不能强转回它自己。

    这个问题好像有点长,描述一下: 就是通过类名的方式获取Bean后,得到一个Object对象,但是这个Object不能再强转回Bean了.抛出的异常时类型转换异常.  java.lang.ClassCa ...

  4. Spring 注解配置Bean

    一.使用注解配置Bean 1.注解 在类定义.方法定义.成员变量定义前使用.其简化<bean>标签,功能同<bean>标签.格式为: @注解标记名. 2.组件扫描 Spring ...

  5. Spring Boot 获取Bean对象实体

    一.实现 ApplicationContextAware 接口 package com.zxguan; import org.springframework.beans.BeansException; ...

  6. 使用spring注解——定义bean和自动注入

    对于java bean的定义和依赖配置,使用xml文件真心是不方便. 今天学习如何用注解,解决bean的定义和注入. 常用注解: 1.自动注入:@Resources,@Autowired 2.Bean ...

  7. Junit单元测试注入spring中的bean(转载)

    转载自:http://blog.csdn.net/cy104204/article/details/51076678 一般对于有bean注入的类进行方法单元测试时,会发现bean对象并没有注入进来,对 ...

  8. spring中获取bean的方式

    获取bean的方式 1.可以通过上下文的getBean方法 2.可以通过@Autowired注入 定义controller @RestController @RequestMapping(" ...

  9. spring中获取Bean

    在测试类中我们获取已经装配给容器的Bean的方法是通过ApplicationContext,即 ApplicationContext ac=new ClassPathXmlApplicationCon ...

随机推荐

  1. ArcGIS案例学习笔记-找出最近距离的垂线

    ArcGIS案例学习笔记-找出最近距离的垂线 联系方式:谢老师,135-4855-4328,xiexiaokui@qq.com 目的:对于任意矢量要素类,查找最近距离并做图 数据: 方法: 0. 计算 ...

  2. k8s operator

    https://coreos.com/blog/introducing-operators.html Site Reliability Engineer(SRE)是通过编写软件来运行应用程序的人员. ...

  3. Xshell 连接ubuntu虚拟机失败解决办法

    当我们在VMWare上安装好Ubuntu虚拟机后,有时候会需要使用多个terminal窗口,但是在虚拟机中多个窗口互相切换查看不方便,这时候用物理机的xshell工具连接到虚拟机中去就显得很方便.直接 ...

  4. 04_web基础(六)之请求转发与重定向

    1.交互方式 Web组件之间跳转: 从AServlet 跳转到 BServlet. 三种类型: 1:请求转发(forward) 2:URL重定向(redirect) 3:请求包含(include) 3 ...

  5. java基本数据间转换

    string=====>int int x = Integer.parseInt(“1111”); string=====>char char x = request.getParamet ...

  6. java和c#中String

    java中: c#中: 1.拼接字符串 sql语句中 in() str="'001','002','003'";至于产生string就这样  str1="'001'&qu ...

  7. linux删除历史操作命令

    有时候在系统中做了任何操作,但不想被别人知道,毕竟系统别人都可以登入查看,那怎么把自己操作系统的历史命令删除而不让别人知晓呢? 在linux系统里一旦操作了任何命令,都会被记录下来,可以通过histo ...

  8. 十 suprocess模块

    1 import subprocess 2 3 ''' 4 sh-3.2# ls /Users/egon/Desktop |grep txt$ 5 mysql.txt 6 tt.txt 7 事物.tx ...

  9. Js笔记(对象,构造函数,原型,原型链,继承)及一些不熟悉的语法

    对象的特性: 1.唯一标识性,即使完全不一样的对象,内存地址也不同,所以他们不相等 2.对象具有状态,同一个对象可能处在不同状态下 3.对象具有行为,即对象的状态可能因为他的行为产生变迁 Js直到es ...

  10. Cisco & H3C 交换机 DHCP 中继

    个人理解:其实在核心交换上配置dhcp 中继也就是短短的几条命令,主要是注意细节,具体配置如下,希望能帮到大家: DHCP服务器IP:192.168.1.100 CISCO: 第一步:开启交换机的dh ...