国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

網(wǎng)站建設(shè)預(yù)付款比例惠州網(wǎng)絡(luò)營銷

網(wǎng)站建設(shè)預(yù)付款比例,惠州網(wǎng)絡(luò)營銷,胖哥網(wǎng)站的建設(shè)目標(biāo),做凍品海鮮比較大的網(wǎng)站有哪些測試替身Test Doubles的5類型(Mockito) 我們有一個名為 BankAccount 的類。 數(shù)據(jù)庫用于存儲和檢索銀行帳戶信息。 我們想測試 BankAccount 中的邏輯,而不必?fù)?dān)心它使用的底層數(shù)據(jù)庫.由此類實(shí)現(xiàn)——它將 SQL 查詢發(fā)送到數(shù)據(jù)庫并返回其中包含的值。 測試替身Test Dou…

測試替身Test Doubles的5類型(Mockito)

我們有一個名為 BankAccount 的類。
數(shù)據(jù)庫用于存儲和檢索銀行帳戶信息。

在這里插入圖片描述
我們想測試 BankAccount 中的邏輯,而不必?fù)?dān)心它使用的底層數(shù)據(jù)庫.由此類實(shí)現(xiàn)——它將 SQL 查詢發(fā)送到數(shù)據(jù)庫并返回其中包含的值。

測試替身Test Doubles
測試替身是“替代”某些原始類的類,允許測試避免使用原始類代替時所需的一些復(fù)雜性。測試替身有點(diǎn)像特技替身——我們不使用真正的演員,而是使用另一個 看起來像,但讓所有困難的事情看起來很容易!

測試替身的類型
1 Dummies
2 Stubs
3 Fakes
4 Mocks
5 Spies

Dummies
Dummies 是代替實(shí)物的物體
然而,測試從來沒有使用偽,它的目的只是滿足編譯器的要求。
我們假設(shè)BankAccountDatabaseConnection是一個Java接口,我們可以用不同的方式實(shí)現(xiàn)它進(jìn)行測試。但是實(shí)際類的方法可以很容易地被重寫以獲得相同的效果。
在這里插入圖片描述

在這里插入圖片描述
數(shù)據(jù)庫本身對此測驗(yàn)并不重要,所以我們只需要一個假dummy來編譯測試。
在這里插入圖片描述
Stubs
Stubs是覆蓋原始類的某些方法的對象,以便可以測試其他類/方法。

在這里插入圖片描述
Stubs are objects that override certain methods of the original so that some other class/method can be tested.
在這里插入圖片描述
Fakes
Fakes提供了真實(shí)對象的偽實(shí)現(xiàn)。這里是數(shù)據(jù)庫功能的“內(nèi)存中”實(shí)現(xiàn)。
請注意fakes的缺點(diǎn)——本質(zhì)上,我們正在實(shí)現(xiàn)更多需要測試的功能。
在這里插入圖片描述
Mocks
Mock擴(kuò)展了Stub的概念——它們允許您控制方法返回的值,但也可以確認(rèn)方法是用正確的值作為參數(shù)調(diào)用的。
在這里插入圖片描述
除非我們使用假的(并為假的寫更多的測試),否則無法確定進(jìn)入數(shù)據(jù)庫以設(shè)置銀行賬戶余額的值是否正確。
Mock:
在這里插入圖片描述
明確驗(yàn)證是否指示數(shù)據(jù)庫將賬號為1000的余額金額設(shè)置為200英鎊。

Test using mock:
在這里插入圖片描述
Spies
Spies類似于mock,但沒有Stub方法(返回預(yù)定值的方法)。也就是說,它們只做方法調(diào)用的日志記錄和檢查部分。它們對于檢查單元和外部組件之間的接口很有用。(有時它們甚至被用作集成測試的一部分。)
例如,它們可以用于監(jiān)視方法并檢查是否生成了正確的SQL?;蛘?#xff0c;在調(diào)用服務(wù)發(fā)送電子郵件之前,電子郵件的內(nèi)容是預(yù)期的。

小心Doubles
請注意,有多少示例涉及到關(guān)于類被加倍的許多實(shí)現(xiàn)細(xì)節(jié)。特別是:
?Fakes需要自己的測試(!),因?yàn)樗麄兩婕案鄬?shí)施
?Mocks記錄有關(guān)單個方法調(diào)用的詳細(xì)信息,使它們?nèi)菀鬃兊么嗳酢?br /> 因此,請小心使用Doubles,并且僅在必要時使用。
保持事情盡可能真實(shí)往往是最好的方法,同時避免雙重性。

Mockito
每次你想測試一些東西時,寫一個新的測試Doubles可能會很痛苦,很快。
Mockito是生成用于JUnit的mock的有用框架。
由于Mocks是Stubs和Spices,而Stubs更專業(yè)的Dummies版本,Mockito可以生成除Fake之外的所有類型的Doubles。

Mock example with Mockito

Test using manually written mock:
在這里插入圖片描述
Manually- written mock class:
在這里插入圖片描述
Test using virtual mock:
在 Java 中,虛擬模擬測試是指在單元測試期間使用模擬框架來模擬依賴項(xiàng)或外部組件的行為的做法。 模擬是一種用于隔離被測試代碼的技術(shù),它通過用可以控制和驗(yàn)證的虛假實(shí)現(xiàn)替換真實(shí)的依賴關(guān)系。

以下是如何在 Java 中進(jìn)行虛擬模擬測試的一般概述:

  1. 選擇模擬框架:Java 有幾種流行的模擬框架,例如 Mockito、PowerMock 和 EasyMock。 選擇一個適合您需要的,并將其作為依賴項(xiàng)包含在您的項(xiàng)目中。

  2. Identify the Dependencies:確定需要模擬的外部依賴。 這些依賴項(xiàng)通常是您的代碼所依賴的其他類、接口或外部服務(wù)。

  3. 創(chuàng)建模擬對象:使用模擬框架,創(chuàng)建模擬依賴項(xiàng)行為的模擬對象。 這些模擬對象將在測試期間替換真實(shí)的實(shí)現(xiàn)。

  4. 定義模擬行為:指定模擬對象的期望行為。 您可以將它們配置為返回特定值、模擬異?;蛟谡{(diào)用某些方法時執(zhí)行其他操作。

  5. 將模擬注入到測試中:在您的測試代碼中,將模擬對象注入到被測試的類或方法中。 這通常是通過構(gòu)造函數(shù)注入、setter 注入或使用像 Spring 這樣的依賴注入框架來完成的。

  6. 編寫測試用例:編寫測試用例以執(zhí)行被測代碼的功能。 當(dāng)代碼調(diào)用模擬依賴項(xiàng)上的方法時,它們將根據(jù)模擬對象中定義的行為做出響應(yīng)。

  7. 驗(yàn)證交互:執(zhí)行被測試的代碼后,您可以使用模擬框架的驗(yàn)證功能來斷言特定方法在模擬對象上被調(diào)用并使用預(yù)期參數(shù)。

  8. 運(yùn)行測試:使用您喜歡的測試框架(例如 JUnit 或 TestNG)執(zhí)行測試用例。 測試框架將運(yùn)行測試并報告任何失敗或錯誤。

通過使用虛擬模擬測試,您可以在不依賴實(shí)際依賴項(xiàng)的情況下有效地隔離和測試各個代碼單元,從而使測試過程更加集中和高效。 Mocking 允許您模擬不同的場景、邊緣情況和錯誤條件,以確保您的代碼在各種情況下都能正確運(yùn)行。
在這里插入圖片描述
使用mock()生成mock對象。我們從來沒有(也不需要)看到任何實(shí)際的代碼——因?yàn)樗鼰o論如何都不存在
為mock生成“Stubbed”方法

Fake Turned Into a Mock
Test using manually written fake:
在這里插入圖片描述
Manually written fake class:
在這里插入圖片描述
它只是為了測試,但我們也需要測試它!
在這里插入圖片描述
我們可以改用Mock。
此代碼類似于Mock的最后一個示例。

Dummy Example with Mockito
Test using manually written dummy:
在這里插入圖片描述
Manually written dummy class:
在這里插入圖片描述
Test using virtual mock (which is a dummy in this case):
在這里插入圖片描述
生成模擬對象。 由于我們不去stub或驗(yàn)證任何方法,因此它實(shí)際上是一個dummy

Stub Example with Mockito
Test using manually written stub:
在這里插入圖片描述
Manually written stub class:
在這里插入圖片描述
生成模擬對象并“stub”一個方法。
由于我們不去驗(yàn)證任何方法,它實(shí)際上是一個Stub
在這里插入圖片描述
Mockito——總結(jié)
Mockito 可以省掉很多手動寫 double 的工作。
Mockito 可以做的比我們在這里介紹的更多,請參閱
https://site.mockito.org/
Double會導(dǎo)致脆弱的測試。
始終考慮集成測試是否更合適。

http://aloenet.com.cn/news/39971.html

相關(guān)文章:

  • 成都廣告公司網(wǎng)站建設(shè)瑞金網(wǎng)絡(luò)推廣
  • 邯鄲網(wǎng)站建設(shè)公司群站優(yōu)化之鏈輪模式
  • 企業(yè)商務(wù)網(wǎng)站建設(shè)策劃書查詢域名注冊信息
  • 17網(wǎng)站一起做網(wǎng)店揭陽seo合作
  • wordpress自定義登陸頁面天津seo方案
  • 用表格做網(wǎng)站廊坊首頁霸屏優(yōu)化
  • 網(wǎng)站建設(shè)要求百度指數(shù)疫情
  • wordpress網(wǎng)站設(shè)計作業(yè)線下營銷推廣方式都有哪些
  • logosc網(wǎng)站怎么做的網(wǎng)絡(luò)營銷的基本特征有哪七個
  • 長沙建設(shè)公司網(wǎng)站網(wǎng)絡(luò)推廣產(chǎn)品公司
  • 小游戲網(wǎng)站審核怎么做百度信息
  • 迅馳互聯(lián)網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣怎么樣廣東云浮疫情最新情況
  • 網(wǎng)站建設(shè) 大公司小公司seo排名優(yōu)化是什么意思
  • 做ppt哪個網(wǎng)站好百度seo查詢
  • 網(wǎng)站app用什么語言開發(fā)的互聯(lián)網(wǎng)推廣運(yùn)營
  • 如何修改wordpress優(yōu)化公司
  • 建設(shè)網(wǎng)站需要的工具廣州seo推廣公司
  • behance設(shè)計官網(wǎng)網(wǎng)址提供seo服務(wù)
  • 畢設(shè)做網(wǎng)站具體步驟seo關(guān)鍵詞快速提升軟件官網(wǎng)
  • 旅游網(wǎng)站開發(fā)項(xiàng)目策劃書中國四大軟件外包公司
  • 常德網(wǎng)站建設(shè)要點(diǎn)網(wǎng)站買賣交易平臺
  • 電子商務(wù)的就業(yè)方向seo網(wǎng)站優(yōu)化是什么
  • 昆明網(wǎng)站建設(shè)哪家好網(wǎng)絡(luò)推廣入門教程
  • 怎樣在谷歌做網(wǎng)站站內(nèi)關(guān)鍵詞排名優(yōu)化軟件
  • vps做網(wǎng)站空間長春網(wǎng)絡(luò)優(yōu)化哪個公司在做
  • 網(wǎng)站開發(fā)的職業(yè)技術(shù)方面seo怎么做新手入門
  • 如何建設(shè)好政府門戶網(wǎng)站優(yōu)化網(wǎng)站性能
  • 成品網(wǎng)站管理系統(tǒng) 源碼拼多多網(wǎng)店代運(yùn)營要多少費(fèi)用
  • app網(wǎng)站制作要多少錢電腦優(yōu)化系統(tǒng)的軟件哪個好
  • wordpress加載慢 2017西安快速排名優(yōu)化