亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 幫助中心 > 正文

Spring Boot 單元測試和集成測試實現詳解

2024-07-09 22:40:44
字體:
來源:轉載
供稿:網友

學習如何使用本教程中提供的工具,并在 Spring Boot 環境中編寫單元測試和集成測試。

1. 概覽

本文中,我們將了解如何編寫單元測試并將其集成在 Spring Boot 環境中。你可在網上找到大量關于這個主題的教程,但很難在一個頁面中找到你需要的所有信息。我經常注意到初級開發人員混淆了單元測試和集成測試的概念,特別是在談到 Spring 生態系統時。我將嘗試講清楚不同注解在不同上下文中的用法。

2. 單元測試 vs. 集成測試

維基百科是這么說單元測試的:

在計算機編程中,單元測試是一種軟件測試方法,用以測試源代碼的單個單元、一個或多個計算機程序模塊的集合以及相關的控制數據、使用過程和操作過程,以確定它們是否適合使用。

集成測試:

“集成測試(有時也稱集成和測試,縮寫為 I&T)是軟件測試的一個階段,在這個階段中,各個軟件模塊被組合在一起來進行測試?!?/p>

簡而言之,當我們在做單元測試時,只是測試了一個代碼單元,每次只測試一個方法,不包括與正測試組件相交互的其他所有組件。

另一方面,在集成測試中,我們測試各組件之間的集成。由于單元測試,我們可知這些組件行為與所需一致,但不清楚它們是如何在一起工作的。這就是集成測試的職責。

3. Java 單元測試

所有 Java 開發者都知道 JUnit 是執行單元測試的主要框架。它提供了許多注解來對期望進行斷言。

Hamcrest 是一個用于軟件測試的附加框架。Hamcrest 允許使用現有的 matcher 類來檢查代碼中的條件,還允許自定義 matcher 實現。要在 JUnit 中使用 Hamcrest matcher,必須使用 assertThat 語句,后跟一個或多個 matcher。

在這里,你可以看到使用這兩種框架的簡單測試:

import static org.hamcrest.CoreMatchers.allOf;import static org.hamcrest.CoreMatchers.anyOf;import static org.hamcrest.CoreMatchers.both;import static org.hamcrest.CoreMatchers.containsString;import static org.hamcrest.CoreMatchers.equalTo;import static org.hamcrest.CoreMatchers.everyItem;import static org.hamcrest.CoreMatchers.hasItems;import static org.hamcrest.CoreMatchers.not;import static org.hamcrest.CoreMatchers.sameInstance;import static org.hamcrest.CoreMatchers.startsWith;import static org.junit.Assert.assertArrayEquals;import static org.junit.Assert.assertEquals;import static org.junit.Assert.assertFalse;import static org.junit.Assert.assertNotNull;import static org.junit.Assert.assertNotSame;import static org.junit.Assert.assertNull;import static org.junit.Assert.assertSame;import static org.junit.Assert.assertThat;import static org.junit.Assert.assertTrue;import java.util.Arrays;import org.hamcrest.core.CombinableMatcher;import org.junit.Test;public class AssertTests { @Test public void testAssertArrayEquals() {  byte[] expected = "trial".getBytes();  byte[] actual = "trial".getBytes();  assertArrayEquals("failure - byte arrays not same", expected, actual); } @Test public void testAssertEquals() {  assertEquals("failure - strings are not equal", "text", "text"); } @Test public void testAssertFalse() {  assertFalse("failure - should be false", false); } @Test public void testAssertNotNull() {  assertNotNull("should not be null", new Object()); } @Test public void testAssertNotSame() {  assertNotSame("should not be same Object", new Object(), new Object()); } @Test public void testAssertNull() {  assertNull("should be null", null); } @Test public void testAssertSame() {  Integer aNumber = Integer.valueOf(768);  assertSame("should be same", aNumber, aNumber); } // JUnit Matchers assertThat @Test public void testAssertThatBothContainsString() {  assertThat("albumen", both(containsString("a")).and(containsString("b"))); } @Test public void testAssertThatHasItems() {  assertThat(Arrays.asList("one", "two", "three"), hasItems("one", "three")); } @Test public void testAssertThatEveryItemContainsString() {  assertThat(Arrays.asList(new String[] { "fun", "ban", "net" }), everyItem(containsString("n"))); } // Core Hamcrest Matchers with assertThat @Test public void testAssertThatHamcrestCoreMatchers() {  assertThat("good", allOf(equalTo("good"), startsWith("good")));  assertThat("good", not(allOf(equalTo("bad"), equalTo("good"))));  assertThat("good", anyOf(equalTo("bad"), equalTo("good")));  assertThat(7, not(CombinableMatcher.<Integer> either(equalTo(3)).or(equalTo(4))));  assertThat(new Object(), not(sameInstance(new Object()))); } @Test public void testAssertTrue() {  assertTrue("failure - should be true", true); }}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美激情第6页| 欧美日韩在线另类| 性色av一区二区咪爱| 亚洲淫片在线视频| 色婷婷综合久久久久中文字幕1| 成人av在线天堂| 精品久久久香蕉免费精品视频| 日本aⅴ大伊香蕉精品视频| 欧美高清在线视频观看不卡| 日本精品视频在线| 国产精品久久久久久久久久| 欧美福利视频在线| 97精品国产97久久久久久免费| 日韩av一区在线观看| 国产精品视频精品视频| 国产成人精品久久| 国产最新精品视频| 国产精品久久久久久久久久新婚| 国产精品99一区| 国产精品一区二区久久精品| 国产69久久精品成人看| 日韩av在线最新| 亚州国产精品久久久| 久久久成人av| 91沈先生在线观看| 久久精视频免费在线久久完整在线看| 精品国产老师黑色丝袜高跟鞋| 国产亚洲精品美女久久久| 2021国产精品视频| 韩日欧美一区二区| 欧美成人精品不卡视频在线观看| 黑人狂躁日本妞一区二区三区| 亚洲电影第1页| 成人性生交大片免费看视频直播| 国产精品99免视看9| 91精品国产自产在线老师啪| 国产精品午夜视频| 成人h视频在线观看播放| 日韩在线精品视频| 98精品国产高清在线xxxx天堂| 欧美老女人xx| 国产成人精品在线| 国外成人在线视频| 欧美黄色免费网站| 免费成人高清视频| 日日噜噜噜夜夜爽亚洲精品| 在线观看亚洲区| 91网在线免费观看| 欧美精品一区二区三区国产精品| 日韩h在线观看| 日韩精品极品毛片系列视频| 亚洲三级黄色在线观看| 日本在线精品视频| 欧美日韩性生活视频| 搡老女人一区二区三区视频tv| 色www亚洲国产张柏芝| 欧美电影免费观看电视剧大全| 一夜七次郎国产精品亚洲| 亚洲欧美日韩一区二区三区在线| 91精品久久久久| 欧美激情一级精品国产| 91免费在线视频| 国产精品日韩专区| 亚洲欧洲在线免费| 色午夜这里只有精品| 国产精品免费一区| 国产精品久久久久久久天堂| 成人黄色午夜影院| 欧美在线视频a| 91久热免费在线视频| 成人中心免费视频| 国模精品视频一区二区| 亚洲精品国产综合区久久久久久久| 国产丝袜一区二区三区| 欧美国产日韩精品| 国产精品久久久久不卡| 国产欧美日韩丝袜精品一区| 亚洲精品国产福利| 日韩av手机在线| 日韩国产欧美区| 一区二区三区四区精品| 亚洲最新av在线网站| 一本一道久久a久久精品逆3p| 欧美丝袜美女中出在线| 国产精品美乳一区二区免费| 国产精品爽爽爽爽爽爽在线观看| 国产视频久久久| 久久久综合免费视频| 最新69国产成人精品视频免费| 日韩中文字幕网站| 欧美成人亚洲成人| 欧美裸体xxxx极品少妇软件| 亚洲一级一级97网| 欧美精品久久久久久久免费观看| 亚洲片国产一区一级在线观看| 91高清视频在线免费观看| 成人午夜在线视频一区| 日韩二区三区在线| 久久国产精品99国产精| 亚洲视频一区二区| 亚洲人成网在线播放| 国产精品久久久久久久9999| 国产在线视频不卡| 国产精品精品久久久久久| 亚洲成人久久久| 中文字幕亚洲综合| 国产视频久久久久| 久久久久久久久久久人体| 亚洲理论在线a中文字幕| 久久视频免费观看| 亚洲一区亚洲二区| 国产不卡精品视男人的天堂| 亚洲精品美女久久| 国产91精品久久久| 日本一区二区在线播放| 欧美久久精品午夜青青大伊人| 日韩欧美在线中文字幕| 日韩在线播放视频| 92版电视剧仙鹤神针在线观看| 欧美在线www| 一本久久综合亚洲鲁鲁| 久久频这里精品99香蕉| 欧美性极品xxxx做受| 欧美午夜视频在线观看| 国产视频999| 久久精品视频一| 亚洲永久免费观看| 中文字幕亚洲欧美日韩在线不卡| 欧美猛交ⅹxxx乱大交视频| 亚洲人成自拍网站| 欧美性一区二区三区| 国产精品欧美激情在线播放| 国产精品香蕉在线观看| 亚洲午夜av久久乱码| 成人欧美一区二区三区黑人| 午夜精品久久17c| 最近2019年好看中文字幕视频| 精品久久久香蕉免费精品视频| 亚洲欧美日韩在线高清直播| 久久99久久久久久久噜噜| 亚洲在线免费视频| 精品久久中文字幕久久av| 日韩在线观看免费高清完整版| 欧美日韩激情视频8区| 久久久久久一区二区三区| 欧美日韩国产专区| 亚洲自拍偷拍色图| 日韩亚洲成人av在线| 97在线看福利| 日韩中文字幕精品视频| 日韩精品免费在线视频观看| 欧美国产日韩在线| 78色国产精品| 高跟丝袜一区二区三区| 亚洲欧美成人在线| 日韩综合中文字幕| 在线观看欧美日韩国产| 欧美xxxx18国产| 亚洲精品国精品久久99热一| 日本精品久久电影| 日韩av片永久免费网站| 亚洲色图国产精品| 在线观看免费高清视频97| 亚洲成人网av|