spring整合Junit的配置
阿新 • • 發佈:2021-08-06
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一致