天天看点

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 的单元测试

继续阅读