官术网_书友最值得收藏!

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

如果編寫一些代碼來執行先前列舉的測試,那么我們可以在任何時候運行測試代碼,同時也能夠確保該方法始終有效。甚至可以在每一次代碼簽入的時候自動運行測試。本質上,這樣才能夠保證該方法在所有我們想要支持的場景中都是正確的,而且該方法永遠不會中斷。

主站蜘蛛池模板: 旬阳县| 屏东县| 宣恩县| 安化县| 衡阳市| 灯塔市| 邵武市| 石城县| 佳木斯市| 巴林左旗| 双桥区| 神池县| 油尖旺区| 阳春市| 定陶县| 库伦旗| 长岭县| 伊通| 那坡县| 孝义市| 九龙城区| 临夏市| 青龙| 延川县| 平遥县| 方山县| 监利县| 乐都县| 浦江县| 朝阳区| 和静县| 穆棱市| 安阳市| 福贡县| 武强县| 水富县| 苗栗县| 徐水县| 竹北市| 比如县| 牟定县|