我是南城余!阿里云開(kāi)發(fā)者平臺(tái)專家博士證書(shū)獲得者!
歡迎關(guān)注我的博客!一同成長(zhǎng)!
一名從事運(yùn)維開(kāi)發(fā)的worker,記錄分享學(xué)習(xí)。
專注于AI,運(yùn)維開(kāi)發(fā),windows Linux 系統(tǒng)領(lǐng)域的分享!
本章節(jié)對(duì)應(yīng)知識(shí)庫(kù)
https://www.yuque.com/nanchengcyu/java
本內(nèi)容來(lái)自尚硅谷課程,此處在知識(shí)庫(kù)做了個(gè)人理解
————————————————
6、單元測(cè)試:JUnit
在之前的測(cè)試方法中,幾乎都能看到以下的兩行代碼:
ApplicationContext context = new ClassPathXmlApplicationContext("xxx.xml");
Xxxx xxx = context.getBean(Xxxx.class);
這兩行代碼的作用是創(chuàng)建Spring容器,最終獲取到對(duì)象,但是每次測(cè)試都需要重復(fù)編寫(xiě)。針對(duì)上述問(wèn)題,我們需要的是程序能自動(dòng)幫我們創(chuàng)建容器。我們都知道JUnit無(wú)法知曉我們是否使用了 Spring 框架,更不用說(shuō)幫我們創(chuàng)建 Spring 容器了。Spring提供了一個(gè)運(yùn)行器,可以讀取配置文件(或注解)來(lái)創(chuàng)建容器。我們只需要告訴它配置文件位置就可以了。這樣一來(lái),我們通過(guò)Spring整合JUnit可以使程序創(chuàng)建spring容器了
6.1、整合JUnit5
6.1.1、搭建子模塊
搭建spring-junit模塊
6.1.2、引入依賴
<dependencies>
<!--spring context依賴-->
<!--當(dāng)你引入Spring Context依賴之后,表示將Spring的基礎(chǔ)依賴引入了-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>6.0.2</version>
</dependency>
<!--spring對(duì)junit的支持相關(guān)依賴-->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>6.0.2</version>
</dependency>
<!--junit5測(cè)試-->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>5.9.0</version>
</dependency>
<!--log4j2的依賴-->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j2-impl</artifactId>
<version>2.19.0</version>
</dependency>
</dependencies>
6.1.3、添加配置文件
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.atguigu.spring6.bean"/>
</beans>
copy日志文件:log4j2.xml文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-764734.html
6.1.4、添加java類
package com.atguigu.spring6.bean;
import org.springframework.stereotype.Component;
@Component
public class User {
public User() {
System.out.println("run user");
}
}
6.1.5、測(cè)試
import com.atguigu.spring6.bean.User;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
//兩種方式均可
//方式一
//@ExtendWith(SpringExtension.class)
//@ContextConfiguration("classpath:beans.xml")
//方式二
@SpringJUnitConfig(locations = "classpath:beans.xml")
public class SpringJUnit5Test {
@Autowired
private User user;
@Test
public void testUser(){
System.out.println(user);
}
}
6.2、整合JUnit4
JUnit4在公司也會(huì)經(jīng)常用到,在此也學(xué)習(xí)一下文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-764734.html
6.2.1、添加依賴
<!-- junit測(cè)試 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
6.2.2、測(cè)試
import com.atguigu.spring6.bean.User;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:beans.xml")
public class SpringJUnit4Test {
@Autowired
private User user;
@Test
public void testUser(){
System.out.println(user);
}
}
到了這里,關(guān)于spring 單元測(cè)試 Junit的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!