1. 程式人生 > 其它 >Spring第四 spring整合Junit

Spring第四 spring整合Junit

3 Spring整合junit

3.1 原始Junit測試spring的問題

原始junit測試Spring的問題,在測試類中,每個測試方法都有以下兩行程式碼:

@Test

public void Test(){

ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");

UserService us= ac.getBean("UserService"UserService.class);

}

這兩行程式碼的作用是獲取容器,如果不寫的話,直接會提示空指標異常。所以又不能輕易刪掉。

上述問題解決思路•讓SpringJunit負責建立Spring容器,但是需要將配置檔案的名稱告訴它•將需要進行測試Bean直接在測試類中進行注入

3.2 Spring 整合Junit

Spring整合Junit步驟

①匯入spring整合Junit的座標以及junit的座標(之前測試已導)

②使用@Runwith註解替換原來的執行期

③使用@ContextConfiguration指定配置檔案或配置類

④使用@Autowired注入需要測試的物件

⑤建立測試方法進行測試

(第一步)匯入spring整合Junit的座標<!--此處需要注意的是,spring5 及以上版本要求junit 的版本必須是4.12 及以上-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>5.0.2.RELEASE</version>

</dependency>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>4.12</version>

<scope>test</scope>

</dependency>

(第二步)使用@Runwith註解替換原來的執行期@RunWith(SpringJUnit4ClassRunner.class)

public class SpringJunitTest {}

(第三步)使用@ContextConfiguration指定配置檔案或配置類@RunWith(SpringJUnit4ClassRunner.class)

//載入spring核心配置檔案

//@ContextConfiguration(value = {"classpath:applicationContext.xml"})

//載入spring核心配置類@

ContextConfiguration(classes = {SpringConfiguration.class})

public class SpringJunitTest {}

(第四步)使用@Autowired注入需要測試的物件@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(classes = {SpringConfiguration.class})

public class SpringJunitTest {

@Autowiredprivate UserService userService;

(第五步)寫測試方法

@Test

public void testUserService(){

userService.save();}

}