天天看點

SAP Spartacus PageMetaResolver 的單元測試

page.resolvers.ts 包含了很多接口定義,其中一個就是 PageDescriptionResolver:

SAP Spartacus PageMetaResolver 的單元測試

而 BasePageMetaResolver,實作了這些接口:

SAP Spartacus PageMetaResolver 的單元測試

我隻關注 description 字段,維護在 Page 模型的 description 字段裡:

SAP Spartacus PageMetaResolver 的單元測試

BasePageMetaResolver 裡注入了 CmsService,後者得到 page$ Observable 對象:

SAP Spartacus PageMetaResolver 的單元測試

所有的 Resolver,都是從這些 Observable 對象裡讀取 Page 包裹對象的對應字段。

在該單元測試執行初始化操作時:

SAP Spartacus PageMetaResolver 的單元測試

依次初始化 BasePageMetaResolver 的每個字段:

SAP Spartacus PageMetaResolver 的單元測試

執行 resolveTitle 方法:

SAP Spartacus PageMetaResolver 的單元測試

調用 CmsService 的 getCurrentPage 方法:

SAP Spartacus PageMetaResolver 的單元測試

最後拿到 title 字段:

SAP Spartacus PageMetaResolver 的單元測試

繼續閱讀