91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringRunner和SpringJUnit4ClassRunner的區別是什么

發布時間:2023-04-26 17:49:16 來源:億速云 閱讀:163 作者:iii 欄目:開發技術

本篇內容介紹了“SpringRunner和SpringJUnit4ClassRunner的區別是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

    SpringRunner和SpringJUnit4ClassRunner有什么區別?

    @RunWith(SpringRunner.class)
    @RunWith(SpringJUnit4ClassRunner.class)

    這兩個有什么區別?

    SpringRunner 繼承了SpringJUnit4ClassRunner,沒有擴展任何功能;使用前者,名字簡短而已。

    SpringRunner無法映射到SpringJUnit4ClassRunner

    如果在Maven依賴中可以看到該庫已經載入,必須去掉<scope>test</scope>

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

    PS:scope的分類

    compile(編譯范圍)

    • 默認就是compile,什么都不配置也就是意味著compile。

    • compile表示被依賴項目需要參與當前項目的編譯,當然后續的測試,運行周期也參與其中,是一個比較強的依賴。

    • 打包的時候通常需要包含進去。

    test(測試范圍)

    • scope為test表示依賴項目僅僅參與測試相關的工作,包括測試代碼的編譯,執行。

    • 比較典型的如junit。

    runntime(運行時范圍)

    • runntime表示被依賴項目無需參與項目的編譯,不過后期的測試和運行周期需要其參與。與compile相比,跳過編譯而已,說實話在終端的項目(非開源,企業內部系統)中,和compile區別不是很大。

    • 比較常見的如JSR&times;&times;&times;的實現,對應的API jar是compile的,具體實現是runtime的,compile只需要知道接口就足夠了。

    • Oracle jdbc驅動架包就是一個很好的例子,一般scope為runntime。

    • 另外runntime的依賴通常和optional搭配使用,optional為true。我可以用A實現,也可以用B實現。

    provided(已提供范圍)

    • provided意味著打包的時候可以不用包進去,別的設施(Web Container)會提供。

    • 事實上該依賴理論上可以參與編譯,測試,運行等周期。

    • 相當于compile,但是在打包階段做了exclude的動作。

    • 例如, 如果你開發了一個web 應用,你可能在編譯 classpath 中需要可用的Servlet API 來編譯一個servlet,但是你不會想要在打包好的WAR 中包含這個Servlet API;這個Servlet API JAR 由你的應用服務器或者servlet 容器提供。

    • 已提供范圍的依賴在編譯classpath (不是運行時)可用。

    • 它們不是傳遞性的,也不會被打包。

    system(系統范圍)

    • system范圍依賴與provided 類似,但是你必須顯式的提供一個對于本地系統中JAR 文件的路徑。

    • 這么做是為了允許基于本地對象編譯,而這些對象是系統類庫的一部分。這樣的構件應該是一直可用的,Maven 也不會在倉庫中去尋找它。

    • 如果你將一個依賴范圍設置成系統范圍,你必須同時提供一個 systemPath 元素。

    • 注意該范圍是不推薦使用的(你應該一直盡量去從公共或定制的 Maven 倉庫中引用依賴)。

    scope的依賴傳遞

    A&ndash;>B&ndash;>C。當前項目為A,A依賴于B,B依賴于C。知道B在A項目中的scope,那么怎么知道C在A中的scope呢?

    答案是:

    • 當C是test或者provided時,C直接被丟棄,A不依賴C;

    • 否則A依賴C,C的scope繼承于B的scope。

    “SpringRunner和SpringJUnit4ClassRunner的區別是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    邵武市| 云南省| 太谷县| 台中县| 泗阳县| 蕲春县| 綦江县| 吉水县| 宜都市| 厦门市| 桃园市| 贞丰县| 莱西市| 财经| 巴青县| 屯昌县| 昌江| 安丘市| 陆丰市| 贡山| 察哈| 桑植县| 邢台市| 始兴县| 房山区| 青州市| 新野县| 宾川县| 房产| 和龙市| 小金县| 黄骅市| 桦南县| 郎溪县| 呼和浩特市| 阳江市| 榆林市| 石泉县| 韶关市| 双鸭山市| 扎鲁特旗|