日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

Springboot测试类之@RunWith注解

發布時間:2024/3/13 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Springboot测试类之@RunWith注解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

@runWith注解作用:
--@RunWith就是一個運行器
--@RunWith(JUnit4.class)就是指用JUnit4來運行
--@RunWith(SpringJUnit4ClassRunner.class),讓測試運行于Spring測試環 境,以便在測試開始的時候自動創建Spring的應用上下文
--@RunWith(Suite.class)的話就是一套測試集合

引申:
Spring Boot 1.5.2 Junit測試
使用 Spring 進行單元測試

方法1:

@RunWith(SpringRunner.class) @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) @EnableAutoConfiguration public class BBTestAA {@Autowiredprivate TestRestTemplate testRestTemplate;//Application.class 為SpringBoot的啟動入口類,每個SpringBoot項目大家都會配置 }

如果pom.xml中有如下代碼,這行@RunWith(SpringRunner.class)就不會出現SpringRunner,反而有@RunWith(SpringJUnit4ClassRunner.class)

<!--spring-test測試=--> <dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.2.4.RELEASE</version> </dependency>

如果pom.xml中沒有這段,則@RunWith(SpringRunner.class)不會報錯。如果有這段:①未注釋<scope>test</scope>會報錯;②注釋<scope>test</scope>不會報錯

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope> </dependency>

如果pom.xml中沒有這段,則會報錯。如果有這段:①未注釋<scope>test</scope>SpringRunner、SpringBootTest無法引用,會報錯;②注釋<scope>test</scope>不會報錯

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>1.5.9.RELEASE</version><scope>test</scope> </dependency>

總結起來,想要使用

@RunWith(SpringRunner.class) @SpringBootTest(classes = App.class)

pom.xml中應該引用這兩個

<!--spring-test測試=--><!--<dependency>--><!--<groupId>org.springframework</groupId>--><!--<artifactId>spring-test</artifactId>--><!--<version>4.2.4.RELEASE</version>--><!--</dependency>--><!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><version>1.5.9.RELEASE</version><!--<scope>test</scope>--></dependency><!-- https://mvnrepository.com/artifact/junit/junit --><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><!--<scope>test</scope>--></dependency>

方法2:
如果有<scope>test</scope>@RunWith報紅,沒有<scope>test</scope>會引入該類

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope> </dependency>

如果有<scope>test</scope>@SpringBootTest報紅,沒有<scope>test</scope>會引入該類

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>1.5.9.RELEASE</version><scope>test</scope> </dependency>

如果是<version>4.2.4.RELEASE</version>SpringRunner報紅,如果<version>4.2.4.RELEASE</version>會引入該類

<dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.2.4.RELEASE</version> </dependency>

所以最后要正確使用,需引入這些架包

<!--spring-test測試=--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>4.3.7.RELEASE</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-test</artifactId><version>1.5.9.RELEASE</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>

2.在IDE中新增JunitTest類

@RunWith(SpringRunner.class) //14.版本之前用的是SpringJUnit4ClassRunner.class @SpringBootTest(classes = Application.class) //1.4版本之前用的是//@SpringApplicationConfiguration(classes = Application.class) public class SystemInfoServiceImplTest {@Autowiredprivate ISystemInfoService systemInfoservice;@Testpublic void add() throws Exception {}@Testpublic void findAll() throws Exception {}}

主要是注解的更改,如果注解用的不對,會報各種奇怪的問題,例如applicationContext找不到,datasource實例化失敗等等。

3.為了支持上面兩個注解,maven文件中要用對依賴以及版本,我當時添SpringRunner.class所在的依賴jar時,由于用了idea的auto-imported,IDE自動導入了版本是3.x的,實際應該導入4.x,我一直以為idea導入的是正確的,導致在這上面費時頗多,后來我手工寫入就解決了。下面是正確的spring boot test的maven依賴

總結

以上是生活随笔為你收集整理的Springboot测试类之@RunWith注解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。