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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

有关为旧版代码创建存根的更多信息–测试技术7

發布時間:2023/12/3 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有关为旧版代码创建存根的更多信息–测试技术7 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
上一個博客中 ,我談到了如何處理行為不佳的不可測試的 (1) SitePropertiesManager 類,以及如何通過提取接口來創建存根。 但是,如果由于舊類的源代碼已被鎖定在第三方JAR文件中而無法訪問它,會發生什么情況? 答案是您真正沒有想到的事情之一,但是當您看到它時,您會意識到它是顯而易見的。

為了證明這一點,我將重寫上一個博客中的代碼 ? (2)測試我的簡單AddressService 。 情況相同, AddressService必須加載站點屬性并決定是否返回地址:

public Address findAddress(int id) {logger.info("In Address Service with id: " + id);Address address = Address.INVALID_ADDRESS;if (isAddressServiceEnabled()) {address = addressDao.findAddress(id);address = businessMethod(address);}logger.info("Leaving Address Service with id: " + id);return address;}private boolean isAddressServiceEnabled() {return new Boolean(propManager.findProperty("address.enabled"));}

…除了,我要假裝SitePropertiesManager被鎖定在JAR文件中。

之前提出的有關使遺留代碼更具可測試性的所有觀點仍然存在:您需要使用SpringFactoryBean實現轉向依賴注入,并停止依賴靜態工廠方法getInstance ()。 您還需要一種創建存根的方法,該存根允許您將代碼與我們的流氓類愉快使用的數據庫和文件系統隔離開 SitePropertiesManager 。 在這種情況下,由于該類被鎖定在一個JAR文件中,因此您不能簡單地提取一個接口,您必須更加狡猾并使用繼承。 使用繼承編寫存根是很簡單的,并且只需要幾行代碼,如下所示:

public class StubSitePropertiesUsingInheritance extends SitePropertiesManager {private final Map<String, String> propMap = new HashMap<String, String>();public void setProperty(String key, String value) {propMap.put(key, value);}@Overridepublic String findProperty(String propertyName) {return propMap.get(propertyName);} }

這里的主要思想是,現在我可以將存根實例多態注入到我的AddressService類中,而無需知道它已經被愚弄了。

public class LegacyAddressServiceUsingInheritanceTest {private StubAddressDao addressDao;private StubSitePropertiesUsingInheritance stubProperties;private LegacyAddressService instance;@Beforepublic void setUp() {instance = new LegacyAddressService();stubProperties = new StubSitePropertiesUsingInheritance();instance.setPropertiesManager(stubProperties);}@Testpublic void testAddressSiteProperties_AddressServiceDisabled() {/* Set up the AddressDAO Stubb for this test */Address address = new Address(1, "15 My Street", "My Town", "POSTCODE", "My Country");addressDao = new StubAddressDao(address);instance.setAddressDao(addressDao);stubProperties.setProperty("address.enabled", "false");Address expected = Address.INVALID_ADDRESS;Address result = instance.findAddress(1);assertEquals(expected, result);}@Testpublic void testAddressSiteProperties_AddressServiceEnabled() {/* Set up the AddressDAO Stubb for this test */Address address = new Address(1, "15 My Street", "My Town", "POSTCODE", "My Country");addressDao = new StubAddressDao(address);instance.setAddressDao(addressDao);stubProperties.setProperty("address.enabled", "true");Address result = instance.findAddress(1);assertEquals(address, result);} }

您可能會問:為什么不總是使用繼承,答案是該技術的缺點是測試代碼與野生的SitePropertiesManager類緊密耦合。 在這種情況下,這并不是什么大問題,而且作為一個務實的程序員,我想這并不重要,因為擁有整潔,經過測試和可靠的代碼要比擁有松散耦合的代碼更好,但沒有單元測試。


(1)設計時未考慮單元測試。
(2)源代碼可從GitHub獲得:

git://github.com/roghughe/captaindebug.git

參考: Captain Debug's Blog上的JCG合作伙伴 Roger Hughes提供了更多有關為遺留代碼創建存根的測試技術7 的信息 。

相關文章 :

  • 測試技巧–不編寫測試
  • 端到端測試的濫用–測試技術2
  • 您應該對什么進行單元測試? –測試技術3
  • 常規單元測試和存根–測??試技術4
  • 使用模擬的單元測試–測試技術5
  • 為舊版代碼創建存根–測試技術6
  • 為什么要編寫單元測試–測試技巧8
  • 一些定義–測試技術9

翻譯自: https://www.javacodegeeks.com/2011/12/more-on-creating-stubs-for-legacy-code.html

總結

以上是生活随笔為你收集整理的有关为旧版代码创建存根的更多信息–测试技术7的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国偷自产av一区二区三区 | 狠狠的干狠狠的操 | 朝桐光在线视频 | 国产sm调教一区二区 | 国产精品女主播 | 久久久久人妻一区精品色欧美 | 19禁大尺度做爰无遮挡电影 | 淫语视频 | 久久国产电影 | 美女裸体跪姿扒开屁股无内裤 | 我的邻居在线观看 | 99re7| 日韩一级片在线播放 | 国产一区二区三区在线观看 | www.brazzers.com| 韩国av三级 | 女人18毛片水真多 | www.九九九 | 最新av| 张津瑜国内精品www在线 | 狠狠涩 | 麻豆网站| 亚洲欧美视频一区 | 朝桐光在线视频 | 欧美人与禽猛交乱配视频 | 福利视频91 | 少妇3p视频 | 亚洲免费在线视频 | 成人里番精品一区二区 | 国产大尺度视频 | 男女那个视频 | 欧美一区二区三区色 | 亚洲男人天堂2023 | 哺乳喂奶一二三区乳 | 国产经典久久 | 假日游船法国满天星 | 一级片中文| 风韵多水的老熟妇 | 黑丝少妇喷水 | 污污内射久久一区二区欧美日韩 | 久久乐国产精品 | 日韩h在线 | 色翁荡息又大又硬又粗又爽 | 国产精品免费一区二区三区都可以 | 国产免费大片 | 国产色视频网站 | 在线观看日韩欧美 | 天天干天天爽 | 男人的天堂a在线 | 成年人看的黄色片 | av免费一区| 一级香蕉视频在线观看 | 国内精品91 | 国产欧美一级 | 免费观看的黄色网址 | 视频在线免费 | www久久久com| 97成人精品视频在线观看 | 天堂亚洲 | 日本一区二区三区免费电影 | 香蕉依人 | 白峰美羽在线播放 | 久久久久久av无码免费网站下载 | 欧洲精品在线播放 | 日本啪啪啪一区二区 | 免费一级黄 | 污视频网站在线 | 国产在线观看av | 久久99精品波多结衣一区 | 欧美成人性生活片 | 国产精品久久久久久久午夜 | 男女裸体无遮挡做爰 | 在线观看视频福利 | 亚洲一级二级 | 国产亚洲欧美一区二区三区 | 黄色三级生活片 | 精品人妻无码一区二区三区蜜桃一 | 91av在线免费观看 | 亚洲高清免费观看 | 色婷婷国产精品久久包臀 | 国产1区2区在线观看 | 国产羞羞| 欧美日韩黄色片 | 日本不卡在线观看 | 午夜黄色在线 | 自拍偷拍亚洲图片 | 茄子视频懂你更多在线观看 | 尹人在线视频 | 91精品国产99久久久久久红楼 | 亚洲欧洲日本精品 | 99久| 黄色三级三级三级三级 | 国产一区不卡在线观看 | 色乱码一区二区三区网站 | 国产福利精品在线观看 | 亚洲中文字幕无码专区 | 欧美午夜视频 | 日本在线网址 | 成人av影视在线 |