Spring整合junit测试

本节内容:

  • Spring整合junit测试的意义
  • Spring整合junit测试

一、Spring与整合junit测试的意义

在没整合junit之前,我们在写测试方法时,需要在每个方法中手动创建容器,获取对象,比如下面的代码,红色部分都是重复的代码。如果要测试很多功能的话,每次都得手动去创建容器,很麻烦。如果你测试的两个功能中用到某个相同的对象,获取对象的代码也得写一遍。

public class test {

    @Test
    public void test1(){
        //1.创建容器对象(创建Spring的工厂类)
        ApplicationContext ac = new ClassPathXmlApplicationContext("com/wisedu/annotation/applicationContext.xml"); //ClassPathXmlApplicationContext(从类路径下加载xml的Application容器)是org.springframework.context.ApplicationContext的实现类
        //2.向容器"要"User对象(通过工厂解析XML获取Bean实例)
        User user = (User)ac.getBean("user");
        //3.打印User对象
        System.out.print(user);

    }

    @Test
    public void test2(){
        //1.创建容器对象(创建Spring的工厂类)
        ApplicationContext ac = new ClassPathXmlApplicationContext("com/wisedu/annotation/applicationContext.xml"); //ClassPathXmlApplicationContext(从类路径下加载xml的Application容器)是org.springframework.context.ApplicationContext的实现类
        //2.向容器"要"User对象(通过工厂解析XML获取Bean实例)
        User user = (User)ac.getBean("user");
        User user2 = (User)ac.getBean("user");
        User user3 = (User)ac.getBean("user");
        //3.打印User对象
        System.out.print(user==user2);

    }
}

Spring比较体贴,Spring可以整合Junit测试,使用更加便捷的方式在测试代码中使用容器的对象。这个知识点只是为了在测试时更加方便,不使用也没有关系。

二、Spring整合junit测试

1. 需要引入一个新的jar包

spring-test-4.2.4.RELEASE.jar

2. 使用注解

@RunWith(SpringJUnit4ClassRunner.class) //帮我们创建容器

但是由于Spring配置文件位置和名字任意,所以得指明配置文件位置和名称。

@ContextConfiguration("classpath:com/wisedu/annotation/applicationContext.xml") //指定创建容器时使用哪个文件
//@ContextConfiguration(locations = "classpath:com/wisedu/annotation/applicationContext.xml")

另外,原来在每个测试方法里都要手动获取对象,现在我们可以使用为变量注入值:

@Resource(name = "user")
private User u;

编写测试方法:

@Test
public void test3(){
    System.out.print(u);

}

这样每个测试方法里都不需要手动创建容器和手动获取对象了。

整个代码如下:

@RunWith(SpringJUnit4ClassRunner.class) //帮我们创建容器
@ContextConfiguration("classpath:com/wisedu/annotation/applicationContext.xml") //指定创建容器时使用哪个文件
//@ContextConfiguration(locations = "classpath:com/wisedu/annotation/applicationContext.xml")
public class test {
    //将名为user的对象注入到u变量中
    @Resource(name = "user")
    private User u;

    @Test
    public void test3(){
        System.out.print(u);

    }
}

原文地址:https://www.cnblogs.com/zhaojiankai/p/8108839.html

时间: 2024-10-10 07:34:01

Spring整合junit测试的相关文章

Spring整合Junit测试框架

在工作中,很多项目是基于ssm框架的web项目,在编写完代码需要进行测试.但是对象都交由Spring容器进行对象管理之后,测试变得复杂了.因为所有的Bean都需要在applicationContext.xml中加载好,之后再通过@Resource去取得.如果每次都要整个业务流做的差不多了再去测试,这样效率很低,很多同学可能是通过web端发请求进行触发测试.有时候,我们仅仅是需要测试我们dao层sql是否正确,但是确要重启服务器,在浏览器发送请求进行测试,或者写个定时器触发测试.这很费事费时.所以

原创:Spring整合junit测试框架(简易教程 基于myeclipse,不需要麻烦的导包)

我用的是myeclipse 10,之前一直想要用junit来测试含有spring注解或动态注入的类方法,可是由于在网上找的相关的jar文件进行测试,老是报这样那样的错误,今天无意中发现myeclipse本就自带了 spring基于junit的测试框架,而且非常好用. 1.废话不多说,首先添加 测试框架的 类库:项目-->buildpath-->addlibraries-->myelipse libraries-->Spring 2.5 testing  support librar

Spring整合JUnit框架进行单元测试代码使用详解

[转]Spring整合JUnit框架进行单元测试代码使用详解 转自 http://blog.csdn.net/yaerfeng/article/details/25187775 感谢博主 :云淡风轻 .仅此一抹 一.Spring提供的JUnit框架扩展: 1. AbstractSpringContextTests:spring中使用spring上下文测试的Junit扩展类,我们一般不会使用这个类来进行单元测试,它是spring内部设计使用到的类    2. AbstractDependencyI

Struts2+Spring+Mybatis+Junit 测试

Struts2+Spring+Mybatis+Junit 测试 博客分类: HtmlUnit Junit Spring 测试 Mybatis Java代码   package com.action.kioskmonitor; /** * Junit群体测试Struts2 .spring.Mybatis */ import static org.junit.Assert.assertNotNull; import java.util.List; import java.util.UUID; imp

Java高级特性 第10节 IDEA和Eclipse整合JUnit测试框架

一.IDEA整合Junit测试框架 1.安装插件 打开File菜单的下拉菜单settings[设置] : 点击左侧Plugins[插件]菜单 在输入框中输入JUnitGenerator 2.0,点击Install 重启IDEA 2.配置插件 打开settings[设置] 点击左侧Other Settings[其他]菜单 点击左侧JUnit Generator菜单 点击Properties[属性]页签 修改Output Path[输出路径]为${SOURCEPATH}/../../test/jav

Spring整合junit的配置

配置步骤: 1.导入Spring整合Junit的jar(坐标): <dependency> <groupId>org.springframework</groupId> <artifactId>spring-test</artifactId> <version>5.0.2.RELEASE</version> <scope>test</scope> </dependency> 2.使用Ju

SSM框架中测试单元的使用,spring整合Junit

测试类中的问题和解决思路   3.1.1     问题 在测试类中,每个测试方法都有以下两行代码: ApplicationContext ac = new ClassPathXmlApplicationContext("bean.xml"); IAccountService as = ac.getBean("accountService",IAccountService.class); 这两行代码的作用是获取容器,如果不写的话,直接会提示空指针异常.所以又不能轻易删

Spring之junit测试集成

简介 Spring提供spring-test-5.2.1.RELEASE.jar 可以整合junit. 优势:可以简化测试代码(不需要手动创建上下文,即手动创建spring容器) 使用spring和junit集成的步骤 1.导入jar包 2.创建包com.igeek.test,创建类SpringTest 通过@RunWith注解,使用junit整合spring 通过@ContextConfiguration注解,指定spring容器的位置 3.通过@Autowired注解,注入需要测试的对象 在

Spring与junit测试

1.我们知道无论在J2SE还是android中都有junit测试,利用junit能够帮助方便测试代码.在之前的博客中我也写了一些J2SE的一些junit测试例子,今天对于Spring中junit小小的讨论一下. 这个Spring测试需要的jar包:      spring-test-3.2.0.RELEASE.jar 2.Spring和Junit的关系图 左边的采用传统的方式,即一般的J2SE的方式测试代码,这种情况会有些问题: (1).每一个测试都要启动Spring, (2).这种情况下,是测