- 軟件再工程:優化現有軟件系統的方法與最佳實踐
- (美)Bradley Irby
- 495字
- 2020-11-04 16:45:00
3.1 一個單元測試示例
假設你正在編寫一個方法,該方法用于計算給定利率下一定按揭的應付款。方法的調用者可以指定初始貸款額、應付款貸款年數和貸款利率。你的工作是根據貸款人不同的貸款參數,編寫用于計算該貸款人需要支付的總金額的方法。
當編寫好這個方法后,該如何測試?你可以創建一個數據輸入界面。用戶可以通過該界面輸入不同的參數值,然后手工鍵入一定的測試數據,以保證覆蓋對應付款可能產生的不同值。這個方法非常低效,因為首先它需要建立一個數據輸入界面,而輸入界面在隨后的過程中不再使用;其次,它需要有人在產品發布之前手動測試該方法,而這樣做的目的僅僅是為了確保沒有引入可能會引起程序中斷的任何變更。
現在假設我們能夠編寫測試該方法的代碼。可以參考代碼清單3.1中的偽代碼來編寫一些類似的代碼。
代碼清單3.1 單元測試的偽代碼
mthlyPmt1 = CalcLoanPayment(Principal =1000, Interest=5%, NumMonths=360) CheckForProperPayments(lst1) mthlyPmt2 = CalcLoanPayment (Principal =1000, Interest=10%, NumMonths=360) CheckForProperPayments(lst2) mthlyPmt3 = CalcLoanPayment (Principal =1000, Interest=10%, NumMonths=240) CheckForProperPayments(lst3) ...and more tests go here
如果編寫一些代碼來執行先前列舉的測試,那么我們可以在任何時候運行測試代碼,同時也能夠確保該方法始終有效。甚至可以在每一次代碼簽入的時候自動運行測試。本質上,這樣才能夠保證該方法在所有我們想要支持的場景中都是正確的,而且該方法永遠不會中斷。
推薦閱讀
- FuelPHP Application Development Blueprints
- JavaScript修煉之道
- 企業級Java EE架構設計精深實踐
- Dynamics 365 Application Development
- 零基礎學Scratch少兒編程:小學課本中的Scratch創意編程
- OpenCV 3和Qt5計算機視覺應用開發
- MySQL數據庫基礎實例教程(微課版)
- Advanced Oracle PL/SQL Developer's Guide(Second Edition)
- 全棧自動化測試實戰:基于TestNG、HttpClient、Selenium和Appium
- Visual Basic程序設計實驗指導(第二版)
- JavaScript程序設計:基礎·PHP·XML
- Vue.js 3應用開發與核心源碼解析
- C語言程序設計
- Getting Started with RethinkDB
- Learning Swift