案例設計需求
有一個ATM取款系統,現對於取款功能進行了如何需求變更:碑只能取面額是100元(如取500,輸出5張100元),現在功能修改為,可以取面額是10元、50元和100元的,其餘功能不變,使用者介面也沒有任何變化,取款原則為“最優吐鈔法”,有大額先吐大額,請根據需求變更進行案例設計。
參考測試用例
大額優先:
- 剛好整百的金額,吐出N張100元的
- 剛好為50元,吐出1張50元
- 剛好是50以內的整10元,吐出N張10元
- 取款金額是N百超過50元,吐出N張100元,1張50元,(M-5)張10元。例如380元,會吐出3張100元,1張50元,8-5張10元
- 如果是幾十元,同時超過50元。那麼會吐出1張50元,M-5張10元
- 取款金額是N百幾十元,不超過50的,那麼會吐出N張100元,M張10元
沒有大額了:
- 如果沒有50元了,那麼會吐出N張100元,M張10元
- 如果沒有100元,有50元,那會出吐出2N張50元,十位部分。如果十位部分不足50元,則會吐出M張10元。如果超過50元,則會吐出2N+1張50元,M-5張10元
- 如果100元和50元的都沒有了,那麼會吐出全額的10元
- 如果100元的不夠用,會優先吐出全部的100元,再用50元進行折算
- 如果100元和50元都不夠用了,會優先吐出全部的100元和50元,最後用10元的填補
無效場景:
- 錢不夠了,無論是哪一種不夠,這時候會報錯說取款機餘額不足
- 使用者輸入金額不正確,即有個數,那麼也會報錯使用者輸入不正確
- 使用者未輸入,提示報錯