1. 程式人生 > 其它 >spring整合Junit的配置

spring整合Junit的配置

1.1 Spring整合junit的步驟

*  Spring整合junit的配置
* 1.匯入spring整合junitjar(座標)
* 2.使用Junit提供的一個註解把原有的main方法替換了,替換成spring提供的
* @RunWith
* 3.告知spring的執行器,springioc建立是基於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一致