【從學員練習影片觀察到一個關於 TDD 的有趣現象】
極速開發的課後練習作業,雖說重點是放在極速開發要學習的技巧與刻意練習的模型,但開發的方式、順序也是刻意安排成類似 TDD 的進行方式,來讓生產力最大化(TDD 本來就是幫助開發的,不是幫助測試的)
我從2位第一次上我課的學員(當然就是 #極速開發,代表他們沒上過#單元測試 跟 #TDD與持續重構),雖然他們是照著示範影片、上課教學用 TDD 在寫整個 tennis 的過程,但從他們執行測試的時間點就可以發現:
「他是用測試來驗證 production code 的正確性」,即使他先寫了測試,也不先執行,沒有看到紅燈,每次都等到 production code 寫完了,應該要綠燈時,才執行測試。
而其他上過 TDD 課的同學 ,或是上過單元測試的同學,知道測試是用來描述情境,如果現在「加入的這個情境是新的需求或需求異動,代表目前 production code 還不支援這個情境,執行測試跑出的紅燈,就是等等 production code 要完成的 #目標」
test-frist 從來都只是 TDD 其中一個小小的衍生產物,而不是全貌。TDD, 測試驅動開發 從來都是一種開發方法,而不是測試方法。
總有些人老愛把 TDD 拿來跟測試相提並論,就總是喜歡把 test-first 當作靶子打,覺得違反人性跟直覺,覺得先寫測試在很多情況下是浪費時間或是不 work,可能拿來跟一堆測試的方法論相提並論,或總是只拿回歸測試的效益來當作 TDD 的整體。抑或是陷入 isolation unit test 與 integration test (其實就是非 isolation 等級、有實際依賴的自動測試)之爭。
```
註:TDD 事實上是可以不是單元測試等級的。
```
要比較正確看待 TDD 的角度,首先要知道它是幫助開發的、它是一種開發方式(當然不是唯一一種,甚至也不會是最好的一種,因為根本沒有最好,只有剛好)
接著要了解 TDD 可能用 IPO 模型還比較貼切,input-process-output,在你開發任何功能之前,你總要先想過這件事。而先想這件事,才是 TDD 的最基本精神。
接著是怎麼把你想好的東西,變成可執行的 spec,我們只是用測試程式來「描述」你腦袋中的「IPO模型」,把 process 的過程當作一個黑箱子。
而這個 IPO 模型在結合成「使用情境」,就會帶來「高易用性 API 的好處」,只有在一開始就先想好怎麼給別人用,最後才會好用。所謂的一開始想好,指的不是預先設計一堆 class,而是 input/output 想清楚期待(一般會結合實例化需求,搭配 Given/When/Then 的 gherkin style 來把前置條件、資料、前提想好,當發生什麼事,應該是怎樣的結果),然後描述它。在紅燈定義清楚目標,綠燈完成 input/output 關係且沒弄壞前面的所有情境後,來針對 process 進行重構(事實上 Kent Beck 的 TDD by Example 更多是用 refactor 來 #完成 process。
```
註:所謂的 output 不一定只有回傳值,包含外部依賴狀態、資料的改變,甚至顆粒度小一點,針對物件導向設計的話,物件內部狀態的改變也算,只是物件內部狀態改變,驗證點要嘛是拿得到內部狀態,要嘛就是要驗證物件哪個行為會因這個內部狀態而有所不同。
```
## 戰 TDD 之前該先做好的功課
要戰 TDD,是不是至少要把 Kent Beck 的 TDD by Example 看完?
要戰 TDD,請不要拿它跟測試方法論來比,那只是一下就被人看破手腳。因為它是個開發方法論。
要戰 TDD,請不要把它的好處只限縮在跟回歸測試、自動測試的比較,因為那只是它的衍生好處,當你試過在白海報紙上 TDD 就懂,TDD 是在釐清你的思緒的同時,又可以以終為始,確保你在 production code 的每一個動作都是為了滿足某個期待的情境。
要戰 TDD,請不要去把 單元測試、整合測試捲進來,那是測試的顆粒度,那是測試的分類,TDD 從來都不是只能限於單元測試。
要戰 TDD,請不要在那邊戰他是 bottom-up ,是直接從程式/class 的角度出發,事實上 TDD 既不是 bottom-up, 也不是 top-down, (書裡面就有講這件事咩),實務上的 TDD 結合倫敦派(GOOS)跟芝加哥派(Classic TDD),會更像 Outside-In 的進行方式,先定義好驗收情境,接著從最外部(也就是使用者看得到的部份)一路把依賴往另一邊的系統邊界推,直到推到系統以外的依賴資源(persistence 或 external API/service)
```
註: ATDD by Example 中 ATDD by Example, Kent Beck 寫的序最後的一段話。
Kent Beck:
「就像我曾說過的,TDD的一個缺點是,它可能會退化為一種用來滿足開發人員需求的編程技能。某些開發人員從更廣泛的角度來看待TDD,輕易在他們測試的不同抽象級別間跳躍。然而在ATDD中不存在歧義,這是一種加強與非編程人員溝通的技術。我們之間良好的協作關係,以及作為這種關係基礎的溝通,能夠使軟件開發更有效率。採用ATDD是向著溝通更清晰這個目標邁進的重要一步,而此書是一本全面又平易近人的入門讀物。」
```
要戰 TDD,請不要只關注在 test-frist,因為他只是用 test 來幫助你 think-first,不要邊寫邊想。然後不要過份依賴或相信你腦袋的能力,把你想好的東西具體化出來,最好可以被直接執行,最好除了你以外每個人執行出來的結果都會一樣(不管是對的,還是錯的)
要戰 TDD, 請不要把論點放在見樹不見林,如果你有看 TDD by Example 的 Part 1, Part 2 那兩個加起來共 24 個章節,就知道一開始就得把當下想到的全貌紀錄在一個「紙本」的 backlog (所謂的紙本,只是要講這並不依賴於任何工具)
而這個需求輪廓的全貌,會隨著你逐漸完成一部分一部分的情境,設計逐漸浮現後,而隨時跟著增減調整。
但不代表 TDD 就是先想到一個測試案例,就直接先幹下去了,那根本是亂搞。
以上這些,都還不是在列 TDD 的好處,而是針對那些從來沒搞懂 TDD 但又愛戰 TDD 的人一點提醒,你戰的很可能是「你誤解的 TDD」。
TDD 還有許多實務上的用途,列上我在譯者序中的一小段:
>> 測試驅動開發(Test-Driven Development, TDD)!一種以測試為開發輔助、以測試來描述需求情境、以測試來當作目標、以測試來表達期望、以測試來驗證疑問、以測試來實驗學習、以測試來溝通協作、以測試來協助設計高易用性 API 的「開發方法」。
譯者序有開放給大家看,請見:https://tdd.best/book/tdd-by-example/
拜託,要戰之前去看一下祖師爺 Kent Beck 對 TDD 的原始見解:https://www.tenlong.com.tw/products/9789864345618?list_name=srh
如果你想正確的使用 TDD 來幫助你在實務上產生許多的價值,帶來許多的好處,尤其是需求釐清、持續重構、小步快跑的部份,最好理解的培訓課就在這:https://tdd.best/courses/classic-tdd-by-example-video-training/
最後我想講一段話:
TDD 從來都不該被導入到團隊中,但它是一種很好的自我鍛鍊與學習的方式,也是一種能用很低的成本來帶來很多好處的開發方法(見下方註腳),然而它也不是適用所有的情況,但它可以讓『完美』變成一個動詞,而非不變的形容詞。
```
註:
Kent Beck 在 DHH 靠腰:《TDD is Dead》 之後寫的一篇反串文:《RIP TDD》
https://www.facebook.com/notes/1063422864115918/
我幾年前的簡易翻譯,通常也是 TDD 可以幫助你解決的問題,如下:
- Over-engineering (過度設計)
- API feedback (改善API的設計與可用性)
- Logic errors (想的跟寫的不一樣,寫的跟需求不一樣)
- Documentation (寫跟維護文件是痛苦的)
- Feeling overwhelmed (找不到切入點)
- Separate interface from implementation thinking (抽象設計)
- Agreement (確保已修正問題的證據)
- Anxiety (改東壞西的擔心受怕)
```
很久沒對 TDD 發表這種長篇大論了,因為不理解、不想理解、不同角度理解的人居多,能真的到各自的塔上用不同角度來看原義,以及實務上用它來幫助解決的問題有哪些的人,真的太少。
大部分人只想針對這個詞彙來攻訐以博得流量跟吸引目光,而不是想著「我可以用它來幫助我什麼」
問題跟需求是中性的,解決問題跟滿足需求的手段與方式有千萬種,不會只有一種,也不會有所謂的對錯,多點角度去了解不同的方法、方式,然後融會貫通,發揮綜效,在實務上用最少的成本與風險來產生最大的價值,這才是真正的目標。
導入敏捷不該是目標,導入 TDD 也不該是目標,目標永遠都是在實務上產生價值、解決問題、滿足需求。
同時也有5部Youtube影片,追蹤數超過6萬的網紅巴打台,也在其Youtube影片中提到,香港今日社論2021年01月09日(100蚊獅子頭) https://youtu.be/XuZIZxAeb2s 請各網友支持巴打台 巴打台購物網址 https://badatoy.com/shop/ 巴打台Facebook https://www.facebook.com/badatoyhk/ 巴...
「整合測試」的推薦目錄:
- 關於整合測試 在 91 敏捷開發之路 Facebook 的最佳貼文
- 關於整合測試 在 高雄好過日 Facebook 的最佳解答
- 關於整合測試 在 Facebook 的最佳解答
- 關於整合測試 在 巴打台 Youtube 的精選貼文
- 關於整合測試 在 3Q陳柏惟 Youtube 的精選貼文
- 關於整合測試 在 侯友宜 houyuih Youtube 的精選貼文
- 關於整合測試 在 Re: [請益] 如何實現單元測試多於整合測試? - 看板Soft_Job 的評價
- 關於整合測試 在 整合測試與執行策略 的評價
- 關於整合測試 在 [Day25] 測試一定要寫好寫滿?時間有限怎麼辦? 的評價
- 關於整合測試 在 【 .NET 測試入門】#1 什麼是單元測試& 整合測試& 端對端測試? 的評價
- 關於整合測試 在 整合測試- Explore 的評價
- 關於整合測試 在 整合測試範例-在PTT/MOBILE01上電腦組裝相關知識-2022-11 ... 的評價
- 關於整合測試 在 整合測試範例-在PTT/MOBILE01上電腦組裝相關知識-2022-11 ... 的評價
整合測試 在 高雄好過日 Facebook 的最佳解答
【輕軌C17-20系統穩定性測試中,通過即可初履勘】
圖:Huang TC現場拍攝
高雄輕軌C17-20路段,繼17日順利完成系統整合測試(供電、通訊、號誌、自動收費與車輛等系統)後,自9/22起正依照通車後行駛班表,進行連續7天的系統穩定性測試。測試期間,正線列車已顯示開往「臺鐵美術館」站,但在C17站清空乘客後,C18-20採不載客運行。
若是這7天穩定性過關,依照交通部「大眾捷運系統履勘作業要點」,就可以遞交文件辦理初勘、履勘。預計2個半月能完成相關作業通車。新增三站中,C18鼓山站與C20台鐵美術館站均可轉乘臺鐵,且兩站都是特殊站體,將會是通車後的亮點。
但可惜的是臺鐵通勤列車班次仍然不足,對路網擴充、衝高運量的效應來說,仍功虧一簣。
整合測試 在 Facebook 的最佳解答
🚋高雄環狀輕軌服務路線再向北延伸!近日已完成系統整合測試,目標今年底延伸至C20台鐵美術館站,加速成圓。圖/高雄捷運局
整合測試 在 巴打台 Youtube 的精選貼文
香港今日社論2021年01月09日(100蚊獅子頭)
https://youtu.be/XuZIZxAeb2s
請各網友支持巴打台
巴打台購物網址
https://badatoy.com/shop/
巴打台Facebook
https://www.facebook.com/badatoyhk/
巴打台Youtube Channel:
https://www.youtube.com/channel/UCmc27Xd9EBFnc2QsayzA12g
-----------------------
明報社評
尚有12天任期的美國總統特朗普,昨天終於對國會山莊被暴徒嚴重破壞一事開腔,他雖然譴責暴力行為,並且承諾致力於將總統權力順利和無縫移交,但參眾兩院的兩黨議員,紛紛表示不能接受特朗普在白宮多待一天。雖然在短時間內罷免特朗普的機會不高,但朝野仍然堅持要開刀,實質是警告特朗普不能再胡作非為,也是為仍然留任的內閣官員限制特朗普行使權力撐腰,否則美國不得安寧,世界和平也堪憂。正當參眾兩院進行總統選舉最後確認程序的時候,一直不肯承認選舉落敗並指摘對手「竊取」選舉的特朗普,預先召集支持者在華盛頓集會作垂死掙扎。
蘋果頭條
警方再度爆出性醜聞。警方昨晨(7日)接獲一名25歲女子報案,指她於同日凌晨約一時在尖沙嘴一酒店懷疑被一名男子強姦,案件列作「聲稱強姦」,交由西九龍總區重案組跟進。該名涉案男子為休班警務人員,隸屬西九龍總區機動部隊,他已經被停職接受調查。消息指,該名女子與涉案男警為情侶關係,但經常發生爭執,她於前日(6日)被帶到尖沙嘴一間酒店,並在不情願的情況下與男警發生性行為,事後她向朋友哭訴並報案求助。
東方正論
內地記者付國豪前年8月在香港機場遭人禁錮及襲擊一案昨日判刑,3名被告早前已被裁定暴動及襲擊罪成,最終分別被判囚4年3個月至5年半不等。案件暫告一段落,判刑是否合理,公眾自有一把尺,惟負責此案的法官卻趁機為同僚「食死貓」抱不平,直指律政司不肯在原審時反映立場,卻在上訴庭表明刑期範圍,以致基層法官屢屢因為輕判淪為眾矢之的,甚至遭上級法院批評為「錯到無可再錯」,再次揭開律政司胡混度日的冰山一角。
星島社論
美國總統特朗普的支持者周三衝擊國會大廈,舉世震驚。政府官員的辭職潮擴大,兩名內閣成員即華裔運輸部長趙小蘭、女教育部長德沃斯周四相繼請辭,以示抗議。而民主黨則持續「追殺」特朗普,美國媒體昨日報道,眾議院議長佩洛西及其領導團隊,正考慮對特朗普展開閃電式彈劾程序,眾議院最早下周中表決彈劾條款。國內多個城市出現反特朗普示威,要求彈劾及促提早下台。美國運輸部長、參議院共和黨領袖麥康奈爾的妻子趙小蘭周四預告下周一請辭,成為衝擊國會事件發生後第一位宣布辭職的內閣部長,明顯是對特朗普鼓吹支持者使用暴力表達不滿。
經濟社評
本港新冠疫情反覆,港府已預購的科興疫苗,巴西剛證實有效率達78%,各地專家紛紛稱許成效,惟其臨床資訊仍未能一次過發布,難以根絕公眾疑慮,怕會拖低接種率。眼下藥廠仍需時整合測試數據,港府恐難加快步伐,不過官員仍可參考新加坡,對公眾更加開誠布公、做妥接種配套,亦要改善接觸追蹤,以防一直被不明個案拖後腳。科興的合作夥伴巴西聖保羅州布坦坦研究所(Butantan)周四公布,約13,000名志願醫護接種科興疫苗後,得出臨床有效率為78%,全部參加者均避免嚴重或輕微的新冠併發症,研究所形容為極有效的預防工具。
整合測試 在 3Q陳柏惟 Youtube 的精選貼文
本日外交國防質詢簡單幫大家摘要,有三大點:
第一是 高教機進度
第二是 釋商的人力需求跟考核項目
第三是 魚雷買進來之後的國防軍購規劃
我們自 2016 起「國機國造、自研自製」,「勇鷹」AJT(Advanced Jet Trainer)新式高教機,由空軍、漢翔公司和中科院航空所研發、製造,從整機外型設計分析、風洞吹試、藍圖繪製、結構測試、地面整合測試、飛試驗證、部分系統件開發、生產製造組裝、地面輔助訓練系統,到整體後勤支援系統,皆由國人自主完成。
日前已知國防部於 6 月進行高教機首飛,因為高教機首飛不僅是成果展示,還要透過試飛做精進和調整的建議基礎。我期望事前準備方面能夠完善、順利,如果有障礙儘速排除。畢竟新式高教機從研發、製造、出廠到現在要首飛,乘載國人很大期待,此外首次試飛,將往量產邁進,未來66架新式高教機是否需要精進、構改,也需要透過測試做調整,盼相關單位不僅將這次的試飛看做是「成果展示」,同時也是改進、修正、除錯的機會。
國防資源因為釋商的關係,我也提出幾項重點,首先我十分關心《國防產業發展條例》配套法規進度,也期望國防部能廣納各界的意見,盡量完善。
我們的釋商金額年年都在增加,事實上包含軍備、科技,都不太可能是一套標準從開始到最後都沒有變動。那制定一個新的東西,我們需要用現況去規劃未來的東西。此外,釋商的金額逐年增加,就表示我們的需求量越來越大,管理的責任越來越重,配合的廠家理論上也會增加,即便廠家未增加,科目也一定變多或金額變大。那安調的人力,就非常重要了,包含保防、管理,有時可能還得去廠家場勘或調查,特別是機敏專案,目前編制 16 個人,16 個人看一千多億的案子,我們的保防編制是否足夠,很值得留意。
最後,近期可以看到一些採購新聞,如 MK-48 AT 重型魚雷的軍購案,媒體也報導了一些可能的採購計畫。針對軍購的問題,我想強調,不論是軍購或是國造,我們都要根據戰略目標、戰術運用,去決定我們需要的武器。
以傳出美國有意汰除的「伯克級(Arleigh Burke Class)神盾驅逐艦」為例,若台灣接手,雖然具備戰力成熟、相對優惠、能一對一汰換基隆級驅逐艦等好處,但也要思考它堪用的服役時間究竟能多久?是否會影響國艦國造政策和艦隊戰力更新時程,以及過去提出的「新一代主戰艦」和研發艦載戰鬥系統的「迅聯專案」?打個比方,我手上有一隻 iPhone 4,現在出到11,但是不知道為什麼,蘋果禁賣 11 給我。我應該用現在的科技,找人生產一隻 iPhone 11 同級品呢?還是直接買人家不用的二手 iPhone 7 ?雖然 iPhone 7 穩定、相容、確定能用、而且比我的 4 好多了,問題是買了可能要換電池,而且其他零組件老化不知道能用多久。而且我拿著 iPhone 7 出去,感覺還是弱一截啊。我找人生產一隻新手機,處理器、相機...都能用最新科技,但後續整合不知道順不順利?而且我真的做得出來嗎?
國防整備的規劃,需要大智慧,期許國防部能運用智慧,好好規劃。
#3Q陳柏惟 #中二立委 #台灣基進
===============================
◆ 訂閱3Q的Youtube → https://www.youtube.com/c/3QChen
◆ 追蹤3Q的FB → https://www.facebook.com/3Q.PehUi/
◆ 追蹤3Q的IG → wondachen
◆ 追蹤3Q的噗浪 → wondachen
◆ 追蹤3Q的推特 → https://twitter.com/wondafrog
===============================
◆ 台灣基進官網 → https://statebuilding.tw/
◆ 訂閱台灣基進官方Youtube → https://pros.is/L8GNN
◆ 追蹤台灣基進官方臉書 → https://www.facebook.com/Statebuilding.tw/
◆ 捐款支持台灣基進 → https://statebuilding.tw/#support
整合測試 在 侯友宜 houyuih Youtube 的精選貼文
一座城市的發展和交通有密不可分的關係,新北市人口突破400萬之際,另一項重大任務便是改善交通。侯市長除了提出要加速進行三環三線工程外,更新建 #五股泰山輕軌、#八里輕軌、#深坑輕軌 三線。三環六線完工後可提供市民更完善的捷運路網,涵蓋19個行政區,帶動沿線24處約1,700公頃整體開發區。今天議員質詢時向市長反映捷運施工噪音造成民眾很大的困擾,市府團隊會將「#降噪」作為目前施工首要目標,努力改善隔音設備。並且到現場了解施工狀況,督促相關單位盡速解決噪音問題。
🚇#新北淡海輕軌 服務升級:規劃改善淡海輕軌即按即開車門,增加列車縮短班距,提升營運服務品質。紅樹林站內電扶梯已於4月已啟用,站內連通道6月底啟用,藍海線(漁人碼頭-海洋大學 )預計今年將完工。
🚇「工程問題就近解決」:#三鶯線、#安坑輕軌、#萬大線目前正持續在推動中,除了努力加快速度外,更增設了環狀線及萬大線工務所,提供民眾隨時解決施工期間遇到的問題及困擾,落實「#行動治理」 理念。
🚇「#捷運環狀線」:第一階段土建工程已完成,目前正進行最後階段列車及機電系統全線整合測試,今年即將通車。第二階段已於今年5/6通過新北市都市計畫審議,將提報內政部審議。
捷運的規劃及建設相當耗時且需花費龐大費用,新北市政府會從市民的角度出發,主動協調相關單位解決施工障礙,盡可能減少對民眾的影響。非常感謝市民朋友的體恤和支持,在大家的配合之下新北市的交通問題定會大幅改善,打造更便利的交通網絡帶動「新北友好市」各區發展。
⚒更多三環六線進度,請上「 OPEN!三環三線+三線 」或洽詢 新北捷運局:https://open33.ntpc.gov.tw/
#新北任我行 #新北大工程 #安居樂業 #三環六線 #4ourNewTaipei #新北友好市
-趕快來跟侯市長做朋友吧!-
☑️ 臉書 https://www.facebook.com/houyuih/
☑️ IG https://www.instagram.com/hou.yuih/
整合測試 在 整合測試與執行策略 的推薦與評價
... 整合測試(Integration Test) 是常見的階段之一,針對“整合” 我的脈絡有以下: 功能對功能的整合系統對系統的整合功能對系統的整合引用我上次分享整理 ... ... <看更多>
整合測試 在 [Day25] 測試一定要寫好寫滿?時間有限怎麼辦? 的推薦與評價
整合測試 (Integration Test) ... 整合測試顧名思義就是需要「整合」,這表示測試的過程不是單一函式就能滿足,過程中可能會需要呼叫API 獲取資料、使用 ... ... <看更多>
整合測試 在 Re: [請益] 如何實現單元測試多於整合測試? - 看板Soft_Job 的推薦與評價
先確認一下,不知道你們是不是用一些潮潮 der 框架,
然後那框架的官方文件給的範例是看起來簡潔漂亮清楚的一兩行 code,
(例如 service 裡一個查詢 > return 結果)
然後你們把範例 copy 過來改,直接往裡面塞邏輯?
如果是這樣,可能需要先做的是把 CRUD 分割出去,
把所有 "用某些參數組一些查詢取得查詢結果" 這樣的東西包出去變成方法呼叫。
這樣做之後,應該就能很容易的 mock 掉 CRUD 的部份
然後我覺得更好的情況會是把商業邏輯也包出去,
這樣就可以從 service 層再切出更核心更通用的 core 部份,
core 的部份不依賴於任何框架或外部環境,
只包含 "接收資料處理邏輯回傳資料"
這樣做之後,應該就能很單純的直接給資料測 core 的部份,無需任何 mock
(或者說 mock 就是 testing data 本身)
然後哪一種測試要多是依你們的需要而定,
通常整合測試可以 "花較少的時間力氣測較大的範圍",
如果需要的是做上 production 之前的防護網會比較適合
單元測試足夠則可以 "較明確的指出目前有問題與確定正常的部份"
如果需要的是遇到問題時能快速的排查與修復就多加一些
※ 引述《a804372004 (忽冷忽熱摸不著)》之銘言:
: 將單元測試實作於專案時,發現絕大部分API都是針對資料庫做CRUD,這部分程式透過in
: memory 寫了整合測試,越寫越覺得不對勁,心想單元測試數量不是應該要最多? 網路文
: 章、影片或實體書籍大多也在探討如何寫單元測試,整合測試資源相對少,在想是不是我
: 哪裡做錯了,懇請各位大神指教。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.175.248 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1668932484.A.DB0.html
那的確是,假如都是單純的 API 讀資料庫回傳結果這類操作,
基本上也沒什麼東西能拿去做單元測試
單元測試我覺得有幾類比較需要 :
1. 底層核心,偏 utils 的,例如 距離計算,日期的格式化或 parse 等
它們可能被廣泛的用在許多地方,比較不能出錯
2. 本身內部邏輯複雜的,例如依多項參數計算費用或生成合約
它們如果出錯 debug 難度會較高,
有單元測試可協助快速縮小可能出問題的範圍
3. 被用在很多步驟的一組流程中的,例如要打多個 API 的一組流程,
如共享交通的借還車,這類型的當有問題但整合測試測不出來時
(例如打 API 的順序不對,整合測試也沒測該順序的 case)
若有單元測試則可快速確認是不是底層實作的問題,
如果確認不是就能很快的調整排查的方向
不那麼直接
有 "好的邊界與流程" 會好測試,而 OO 是實現的手法之一,
不過不是唯一的方式,也不保證使用 OO 必然能實現 "好的邊界與流程"
※ 編輯: lovdkkkk (111.241.166.152 臺灣), 12/01/2022 12:21:42
... <看更多>