有了 PricingEngine
并定義了應用程序規則之后,可能渴望驗證所有東西都工作正確,F在問題就變成,用 JUnit 還是 FIT?為什么不兩者都用呢?通過 JUnit 測試所有組合是可能的,但是要進行許多編碼。最好是用 JUnit 測試少數幾個值,迅速地驗證代碼在工作,然后依靠 FIT 的力量運行想要的組合。請看看當我這么嘗試時發生了什么,從清單 9 開始:
清單 9. JUnit 迅速地驗證了代碼在工作
package org.acme.store.discount.engine.junit; import junit.framework.TestCase; import org.acme.store.Money; import org.acme.store.discount.engine.PricingEngine; import org.acme.store.discount.engine.ProductType; import org.acme.store.discount.engine.WholesaleOrder; public class DiscountEngineTest extends TestCase { public void testCalculateDiscount() throws Exception{ WholesaleOrder order = new WholesaleOrder(); order.setNumberOfCases(20); order.setPricePerCase(new Money(10.00)); order.setProductType(ProductType.YEAR_ROUND); PricingEngine.applyDiscount(order); assertEquals(0.05, order.getDiscount(), 0.0); } public void testCalculateDiscountNone() throws Exception{ WholesaleOrder order = new WholesaleOrder(); order.setNumberOfCases(20); order.setPricePerCase(new Money(10.00)); order.setProductType(ProductType.SEASONAL); PricingEngine.applyDiscount(order); assertEquals(0.0, order.getDiscount(), 0.0); } } |