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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > javascript >内容正文

javascript

spring-junit4_基于Spring的应用程序-迁移到Junit 5

發(fā)布時(shí)間:2023/12/3 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring-junit4_基于Spring的应用程序-迁移到Junit 5 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

spring-junit4

這是關(guān)于將基于Gradle的Spring Boot應(yīng)用程序從Junit 4遷移到閃亮的新Junit 5的快速文章。Junit 4測(cè)試?yán)^續(xù)與Junit 5 Test Engine抽象一起工作,該抽象為在不同編程模型中編寫的測(cè)試提供支持。例如,Junit 5支持能夠運(yùn)行JUnit 4測(cè)試的Vintage Test Engine。

這是一個(gè)具有JUnit 5集成的示例項(xiàng)目 ,以及在Junit 4和Junit 5中的示例測(cè)試– https://github.com/bijukunjummen/boot2-with-junit5-sample

樣本Junit 4候選測(cè)試

作為一個(gè)候選項(xiàng)目,我有一個(gè)Spring Boot 2應(yīng)用程序,該應(yīng)用程序使用Junit 4作為測(cè)試框架,使用Kotlin編寫了測(cè)試。 這是在顯式調(diào)出所有依賴項(xiàng)的情況下樣本測(cè)試的外觀。 它使用Junit4的@RunWith注釋加載Spring Context:

import org.assertj.core.api.Assertions.assertThat import org.junit.Test import org.junit.runner.RunWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest import org.springframework.test.context.junit4.SpringRunner import org.springframework.test.web.reactive.server.WebTestClient import java.nio.charset.StandardCharsets@RunWith(SpringRunner::class) @WebFluxTest(controllers = arrayOf(RouteConfig::class)) class SampleJunit4Test {@Autowiredlateinit var webTestClient: WebTestClient@Testfun `get of hello URI should return Hello World!`() {webTestClient.get().uri("/hello").exchange().expectStatus().isOk.expectBody().consumeWith({ m ->assertThat(String(m.responseBodyContent, StandardCharsets.UTF_8)).isEqualTo("Hello World!")})}}

Junit 4依賴項(xiàng)通過(guò)“ spring-boot-starter-test”模塊可傳遞地引入:

testCompile('org.springframework.boot:spring-boot-starter-test')

Junit 5遷移

第一步是引入Junit 5依賴項(xiàng)以及Gradle插件,該插件可以運(yùn)行測(cè)試:

插入:

buildscript {dependencies {....classpath 'org.junit.platform:junit-platform-gradle-plugin:1.0.2'} } apply plugin: 'org.junit.platform.gradle.plugin'

依存關(guān)系:

testCompile("org.junit.jupiter:junit-jupiter-api") testRuntime("org.junit.jupiter:junit-jupiter-engine") testRuntime("org.junit.vintage:junit-vintage-engine:4.12.2")

完成這些更改后,所有Junit 4測(cè)試都將繼續(xù)在IDE中以及在執(zhí)行Gradle構(gòu)建時(shí)運(yùn)行,此時(shí),測(cè)試本身可以緩慢遷移。

我之前顯示的測(cè)試與Junit 5 Jupiter相似,它提供了測(cè)試的編程模型:

import org.junit.jupiter.api.Assertions.assertEquals import org.junit.jupiter.api.Test import org.junit.jupiter.api.extension.ExtendWith import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.autoconfigure.web.reactive.WebFluxTest import org.springframework.test.context.junit.jupiter.SpringExtension import org.springframework.test.web.reactive.server.WebTestClient import java.nio.charset.StandardCharsets@ExtendWith(SpringExtension::class) @WebFluxTest(controllers = arrayOf(RouteConfig::class)) class SampleJunit5Test {@Autowiredlateinit var webTestClient: WebTestClient@Testfun `get of hello URI should return Hello World!`() {webTestClient.get().uri("/hello").exchange().expectStatus().isOk.expectBody().consumeWith({ m ->assertEquals("Hello World!", String(m.responseBodyContent, StandardCharsets.UTF_8))})}}

需要注意的是現(xiàn)在,而不是使用JUnit 4 @RunWith注釋,我現(xiàn)在用的是@ExtendWith標(biāo)注,并提供SpringExtension作為一個(gè)參數(shù),它負(fù)責(zé)加載了Spring上下文像以前一樣。 Spring注釋的其余部分將繼續(xù)與JUnit 5一起使用。通過(guò)這種方式,可以將測(cè)試從JUnit 4緩慢移至JUnit 5。

注意事項(xiàng)

但是,并非一切都十分順利,從JUnit 4遷移到JUnit 5時(shí)會(huì)遇到一些問(wèn)題,其中最大的問(wèn)題可能是對(duì)JUnit @Rule和@ClassRule批注的支持,并且JUnit 5文檔確實(shí)詳細(xì)介紹了如何實(shí)現(xiàn)。減輕了 。

翻譯自: https://www.javacodegeeks.com/2018/01/spring-based-application-migrating-junit-5.html

spring-junit4

總結(jié)

以上是生活随笔為你收集整理的spring-junit4_基于Spring的应用程序-迁移到Junit 5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。