08-spring整合 junit

目录

  • 一、spring整合 junit 问题解析
  • 二、Spring 整合 junit 的配置
    • 1.加入架包
    • [email protected]
    • [email protected]

一、spring整合 junit 问题解析

  1. 应用程序的入口

    • main 方法
  2. Junit单元测试中,没有 main 方法也能执行
    1. junit 集成了一个 main 方法
    2. 该方法就会判断当前测试类中那些方法有 @Test 注解
    3. junit 就让有 Test 注解的方法执行
  3. junit 不会管我们是否采用 spring 框架
    1. 在执行测试方法时,junit根本不知道我们是不是使用了 spring 框架
    2. 所以也就不会为我们读取配置文件/配置类创建 spring 核心容器
  4. 由以上三点可知
    • 当测试方法·执行时,没有 IOC 容器,就算写了 Autowired 注解,也无法实现注入

二、Spring 整合 junit 的配置

1.加入架包

        <!-- https://mvnrepository.com/artifact/org.springframework/spring-test -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.1.9.RELEASE</version>
            <scope>test</scope>
        </dependency>

[email protected]

使用 Junit 提供的一个注解把原来的 main 方法替换了,替换成 spring 提供的

这里面要求的是一个字节码,必须是继承 Runner 这个类

[email protected]

告知 spring 的运行期,spring 和 ioc 创建是基于 xml 还是注解的,并且说明位置

  • @ContextConfiguration

    • locations:指定 xml 文件的位置,加上 classpath 关键字,表示在类路径下
    • classes:指定注解类所在地理位置
  • 注意:当我们使用 spring 5.x 版本的时候,要求 Junit 的 jar 必须是 4.12 及以上
package com.test;

import com.config.JdbcConfig;
import com.config.SpringConfiguration;
import com.domain.Account;
import com.service.IAccountService;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.util.List;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = SpringConfiguration.class)
public class AccountServiceTest {

    @Autowired
    IAccountService as=null;

    @Test
    public void testFindAllAccount(){
        //3.执行方法
        List<Account> accounts = as.findAllAccount();
        for (Account account:accounts){
            System.out.println(account);
        }
    }

}

原文地址:https://www.cnblogs.com/zuiren/p/11437518.html

时间: 2024-10-11 13:44:52

08-spring整合 junit的相关文章

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

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

Spring整合junit测试

本节内容: Spring整合junit测试的意义 Spring整合junit测试 一.Spring与整合junit测试的意义 在没整合junit之前,我们在写测试方法时,需要在每个方法中手动创建容器,获取对象,比如下面的代码,红色部分都是重复的代码.如果要测试很多功能的话,每次都得手动去创建容器,很麻烦.如果你测试的两个功能中用到某个相同的对象,获取对象的代码也得写一遍. public class test { @Test public void test1(){ //1.创建容器对象(创建Sp

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测试框架(简易教程 基于myeclipse,不需要麻烦的导包)

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

spring整合Junit方法,支持注解

1, 导入 spring-test-3.2.0.RELEASE.jar 2.添加依赖包  项目右键单击BuildPath>AddLibrary>JUnit    选JUnit4  完成. 3.创建测试类 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.t

Spring整合Junit测试框架

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

Spring整合Junit进行单元测试

I. 加入依赖包 Spring Test (如spring-test-2.5.4.jar) JUnit 4 Spring 其他相关包 II.新建Junit Test Case III.读取配置文件 @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath:/applicationContext.xml" }) public class GoodsServiceTest {

Spring整合JUnit单元测试

依赖spring的spring-test-4.2.4.RELEASE.jar包 测试代码: import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframew

Spring整合JUnit

时间:2017-2-2 02:23 步骤: 1.程序中有JUnit环境 2.导入jar包    spring-test-3.2.0.RELEASE.jar 3.添加注解 4.示例代码 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context