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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

模拟最后一堂课

發布時間:2023/12/3 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 模拟最后一堂课 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

如果您已經閱讀了其他有關異常模擬的博客文章,則可以通過此鏈接跳過前奏 。

我被要求匯總一些示例,這些示例如何模擬因其可測試性問題而眾所周知的Java結構:

  • 模擬私人方法
  • 模擬最終方法
  • 模擬最后一堂課
  • 模擬構造器
  • 模擬靜態方法

我稱這些技術為異常嘲笑。 我擔心這樣的示例在沒有任何指導的情況下會被在模擬框架方面沒有豐富經驗的隊友廣泛使用。

練習TDD或BDD的開發人員應意識到這些構造背后的可測試性問題,并在設計測試和模塊時盡量避免它們。 這就是為什么您可能不會使用這些出色的編程方法在項目上經常遇到如此異常的模擬的原因。

但是有時您必須擴展或維護通常包含低內聚性類的舊代碼庫。 在大多數情況下,當前的忙碌敏捷世界沒有時間使此類易于進行單元測試的標準方法。 當您嘗試對此類進行單元測試時,您通常會意識到需要進行異常模擬。

這就是為什么我決定創建并共享重構注意事項以及異常模擬的示例和變通辦法。 示例包括使用Mockito和PowerMock模擬框架以及TestNG單元測試框架。

模擬最后一堂課

重構注意事項

將類更改為非最終類(刪除final關鍵字)并以標準方式對其進行測試。 這是我可以更改最終課程代碼時始終使用的技術。

PowerMock的用法

在使用此示例之前,請仔細考慮是否值得在您的項目中帶來字節碼操作風險。 他們收集在此博客文章中 。 我認為,僅應在非常罕見且不可避免的情況下使用它。

測試顯示了如何通過PowerMock框架模擬最終類。 示例涵蓋:

  • 在最終類中模擬具有返回值的方法
  • 在最終課程中模擬最終void方法
  • 驗證最終類中的方法調用
  • 期末課程:

    public final class Plane {public static final int ENGINE_ID_RIGHT = 2;public static final int ENGINE_ID_LEFT = 1;public boolean verifyAllSystems() {throw new UnsupportedOperationException("Fail if not mocked!");}public void startEngine(int engineId) {throw new UnsupportedOperationException("Fail if not mocked! [engineId=" + engineId + "]");} }

    被測課程:

    public class Pilot {private Plane plane;public Pilot(Plane plane) {this.plane = plane;}public boolean readyForFlight() {plane.startEngine(Plane.ENGINE_ID_LEFT);plane.startEngine(Plane.ENGINE_ID_RIGHT);return plane.verifyAllSystems();} }

    測試:

    @PrepareForTest(Plane.class) public class PilotTest extends PowerMockTestCase {@Testpublic void testReadyForFlight() {Plane planeMock = PowerMockito.mock(Plane.class);Pilot pilot = new Pilot(planeMock);Mockito.when(planeMock.verifyAllSystems()).thenReturn(true);// testing methodboolean actualStatus = pilot.readyForFlight();Assert.assertEquals(actualStatus, true);Mockito.verify(planeMock).startEngine(Plane.ENGINE_ID_LEFT);Mockito.verify(planeMock).startEngine(Plane.ENGINE_ID_RIGHT);} }

    鏈接

    • 可以從Github下載源代碼。

    其他不尋常的嘲諷示例:

    • 模擬私人方法
    • 模擬最終方法
    • 模擬構造器
    • 模擬靜態方法

    參考:在我們的JCG合作伙伴 Lubos Krnac的模擬決賽課程中 ,網址為http://lkrnac.net/博客。

    翻譯自: https://www.javacodegeeks.com/2014/02/mock-final-class.html

    總結

    以上是生活随笔為你收集整理的模拟最后一堂课的全部內容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 亚洲伊人成人网 | 中文字幕一本 | 国产午夜激情视频 | 日本色视频 | 丰满人妻在公车被猛烈进入电影 | 亚洲人成网站999久久久综合 | 白石茉莉奈黑人 | 日本免费一区二区三区四区五六区 | 香蕉视频亚洲一级 | 国产私人影院 | 噜啪啪| 天堂av影院 | 男人日女人逼 | 欧美性猛交乱大交xxxx | 操女网站 | 都市激情综合 | 久久av红桃一区二区小说 | 午夜国产视频 | 国产亚洲欧美一区 | 99999视频| 国产女主播在线观看 | 亚洲综合射 | 北京富婆泄欲对白 | 91免费网站视频 | 中国一级特黄真人毛片免费观看 | 精品一区二三区 | 嫩模一区 | 欧美成人aaaaⅴ片在线看 | 午夜亚洲aⅴ无码高潮片苍井空 | 一级国产特黄bbbbb | 姐姐av| 久久大片| 日本高清在线观看 | 热99视频| 日韩一级影片 | 好紧好爽再浪一点视频 | 久久综合五月婷婷 | 亚洲精品一区二区三区四区 | 国产极品999 | 午夜高潮| 致命魔术电影高清在线观看 | 一级α片免费看刺激高潮视频 | 野外做受又硬又粗又大视频√ | 少妇4p | 精品无码人妻一区二区三区 | 国产免费一区二区三区三州老师 | 中文婷婷 | 久久com| 精品午夜一区二区三区在线观看 | 亚洲一区二区欧美 | 精彩久久 | 国产v片在线观看 | 少妇特殊按摩高潮惨叫无码 | 成人另类小说 | 成人精品视频一区二区三区尤物 | 免费国偷自产拍精品视频 | 在线观看三级网站 | 小视频在线免费观看 | 国产成人精品一区二区三区网站观看 | 国产精品无码专区av免费播放 | 老妇裸体性激交老太视频 | 欧美有码在线观看 | 午夜电影在线播放 | 婷婷五月综合久久中文字幕 | 色老汉av一区二区三区 | 国产亚洲成av人片在线观看桃 | 97碰| 色综合久久av | 五月婷婷啪啪 | 在线免费视频一区二区 | 狠狠久久综合 | 国产不卡网| 亚洲乱码国产乱码精品 | 日本电影大尺度免费观看 | 特黄特色特刺激免费播放 | 精品成人av一区二区三区 | √天堂8资源中文在线 | 国产高清在线免费 | 欧美高清一区二区三区四区 | 久久久久久五月天 | 久久亚洲精品石原莉奈 | 欧美亚洲自拍偷拍 | 一区二区成人在线观看 | 500福利视频导航 | 人人干夜夜操 | 天天干狠狠 | 国产福利社 | 色综合99久久久无码国产精品 | 无码av天堂一区二区三区 | 日本免费黄色 | 日韩欧美在线观看一区二区三区 | 国产香蕉精品 | 91亚洲国产成人久久精品麻豆 | 刘亦菲毛片一区二区三区 | 天堂中文在线观看视频 | 一区二区在线播放视频 | 黄色片a级| 精品国产二区三区 | 欧美一级看片 |