SAP 电商云 Spartacus UI CheckoutDeliveryService 的单元测试设计
文件路徑:feature-libs\checkout\core\facade\checkout-delivery.service.spec.ts
新增添的方法:getSetDeliveryModeInProcess
這個方法返回的狀態標志位有三個依賴:
- ActiveCartService
- checkoutService
- getSetDeliveryModeProcess
當至少有一個標志位為 true 時,結果肯定為 true.
下面是幾種典型的測試用例的設計。
(1) 當有一個正在進行中的 HTTP put 請求來設置 delivery mode 時, getSetDeliveryModeInProcess 方法應該返回 true.
我們在 264行代碼手動調用 setDeliveryMode,這會觸發一個 HTTP put 請求:
(2) 當 cart 沒有達到 stable 狀態時,應該返回 true.
這里我們用 spyOn 方法監控 activeCartService.isStable 方法的調用,并且在其被調用時進行攔截,返回 false.
(3) 同理,攔截 checkoutService.isLoading 方法,返回 true:
(4) 當 setDeliveryMode 觸發的 HTTP put 請求成功執行時,會導致一個名為 CheckoutActions.SetDeliveryModeSuccess 的 action 投遞到 Ngrx store 里。
因為在單元測試代碼里,Cart service 默認為 stable,checkout service 默認為 is not loading,因此只要 HTTP put 執行完畢,該被測試的方法就應該返回 false.
更多Jerry的原創文章,盡在:“汪子熙”:
總結
以上是生活随笔為你收集整理的SAP 电商云 Spartacus UI CheckoutDeliveryService 的单元测试设计的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 10月见!华为Mate 60标准版首曝:
- 下一篇: 一夜爆红 湖北黄老师直播唱挖呀挖打赏不断