spring整合Junit的配置

1.1 Spring整合junit的步骤

*  Spring整合junit的配置
* 1.导入spring整合junit的jar(坐标)
* 2.使用Junit提供的一个注解把原有的main方法替换了,替换成spring提供的
* @RunWith
* 3.告知spring的运行器,spring和ioc创建是基于xml还是注解的,并且说明位置
* @ContextConfiguration
* Locations:指定xml文件的位置,加上classpath关键字,表示在lei路径下
* classes:指定注解类所在地位置

package com.jh.test;

import com.jh.config.SpringConfiguration;
import com.jh.entity.Account;
import com.jh.service.AccountService;
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 AccountTest {
    @Autowired
    private AccountService accountService = null;
    @Test
    public void TestFindAllAccount() {
        List<Account> list = accountService.findAllAccount();
        for (Account a :
                list) {
            System.out.println(a);
        }
    }
}

如果是xml配置:@ContextConfiguration(locations = "classpath:applicationContext.xml")

1.2 jar包冲突问题

我最后用的以下maven配置,我试过了,junit 4.13版本可以用,但是高于4.13就不能用了,spring-test 2.0版本以上的也不能用

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spring05_eesy_anno_ioc</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.0.2.RELEASE</version>注意版本要与spring-test的版本一致
        </dependency>
        <dependency>
            <groupId>commons-dbutils</groupId>
            <artifactId>commons-dbutils</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13</version><!--此处需要注意的是,spring5 及以上版本要求 junit 的版本必须是 4.12 及以上,否则用不了-->
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.9.1.2</version>
        </dependency>
    </dependencies>

</project>

解决方法:引入的test的依赖版本与项目中的Spring版本不一致,一种方法时去除版本指定,另外一种是将版本更改为与项目Spring一致

 
上一篇:Spring Boot整合Junit 5


下一篇:Hadoop:jdbc连接hive maven 依赖