# 電商多重折扣的 TDD Steps ## Step 1: 建立基礎建設 (Base Case) **Prompt:** > 請幫我寫一個 JavaScript (Jest) 測試檔案來驗證以下邏輯,還不用寫實作。 > **邏輯:** 一般會員,無優惠券時,輸入金額等於輸出金額。 ## Step 2: 實作會員折扣 (VIP Logic) * **目標:** 驗證 VIP 9 折邏輯。 **Prompt:** > 不更改既有程式的情況下,請幫我寫一個 JavaScript (Jest) 測試檔案來驗證以下邏輯,還不用寫實作。 > **邏輯:** VIP 會員,無優惠券時,輸入金額的 9 折等於輸出金額。 ## Step 3: 實作優惠券折扣 (Coupon Logic) * **目標:** 驗證優惠券折抵邏輯。 **Prompt:** > 不更改既有程式的情況下,請幫我寫一個 JavaScript (Jest) 測試檔案來驗證以下邏輯,還不用寫實作。 > **邏輯:** 一般會員,有優惠券時,輸入金額減去優惠卷上的折扣金額等於輸出金額。 ## Step 4: 驗證混合邏輯與運算順序 (Integration & Priority) * **目標:** 確保先打折再扣款 (防止 `(1200-100)*0.9` 的錯誤邏輯)。 **Prompt:** > 不更改既有程式的情況下,請幫我寫一個 JavaScript (Jest) 測試檔案來驗證以下邏輯,還不用寫實作。 > **邏輯:** VIP 會員,有優惠券時,輸入金額先乘 9 折再減去優惠卷上的折扣金額等於輸出金額。 ## Step 5: 處理邊界狀況 (Edge Case) * **目標:** 防止負數金額。 **Prompt:** > 不更改既有程式的情況下,請幫我寫一個 JavaScript (Jest) 測試檔案來驗證以下邏輯,還不用寫實作。 > **邏輯:** 判斷輸出金額,當金額為負數時輸出為 0。 --- ## Next : 擴充功能 **目標:** 擴充業務規則。 **Prompt:** > 不更改既有程式的情況下,加入新判斷邏輯:「優惠券不能用於 3C 產品」。 --- ## 一個錯誤的案例 **目標:** 故意寫壞程式 **Prompt:** > 加入新判斷邏輯:「優惠券讓所有輸出金額變成0」。
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.