Jest 测试框架 beforeEach 的设计原理解析
副标题:SAP Spartacus SSR 优化的单元测试分析之一 : beforeEach 文档 SAP Spartacus 里这段代码: originalEngine = jasmine .createSpy('ngExpressEngine') .and.callFake(() => originalEngineInstan
jMeter Transaction Controller 学习笔记
JMeter 的事务控制器是一个非常方便的工具,用于组织测试的不同部分并确定这些部分将如何出现在报告中。正如 Apache JMeter 的文档中所述:“事务控制器生成一个额外的样本,用于测量执行嵌套测试元素所花费的总时间。” 但这意味着什么?这个“额外样本”对您的 BlazeMeter 报告有什么影响? 如果您还不是非常熟悉这些功能,那么仅仅因为它是一个抽象的概念,可能会让人有点困惑。为了揭
SAP 电商云 Spartacus UI 页面布局的设计原理
Spartacus 每个 UI 划分成不同的区域 section,每个区域由若干个 slots 组成。每个 slot 可以包含一个或多个 CMS Component. 我曾经写过一篇 文章 详细介绍过。 以 homepage为例,其实现的 HTML 位置:projects\storefrontlib\src\layout\main\storefront.component.html 看这个
SAP 电商云 Spartacus UI 的持续集成 - Continous integration
在将代码集成到我们的开发主线之前,会运行一个持续集成过程以证明可以安全地集成更改。 我们将 Travis CI 用于我们的持续集成服务。 每次将代码推送到 Spartacus 存储库时(无论是否已发出拉取请求),都会触发我们公共 Travis CI 中的构建。对于我们所有的库,构建执行以下步骤: 检查更漂亮的合规性检查 tslint 合规性运行所有单元测试运行 Sonar 检查构建 Sp
如何理解 new (...args: any[]) => any
关于javascript:如何开始理解类型…args:any [])=> any 如何理解下面这段代码里的 new 操作? /** * Checks if the value is an instance of the specified object. */ isInstance(object: any, targetTypeConstructor: new (...args
Jest 测试框架使用的学习笔记
Jest Tutorial for Beginners: Getting Started With JavaScript Testing Jest 是一个 JavaScript 测试运行器,即用于创建、运行和构建测试的 JavaScript 库。 Jest 作为 NPM 包发布,您可以将其安装在任何 JavaScript 项目中。 Jest 是当今最流行的测试运行器之一,也是 React 项目
SAP 电商云 Spartacus UI 的单元测试和端到端测试,以及 CI/CD 相关话题
单元测试在项目根目录的 package.json 下面,定义了测试相关的 script: 可以直接 npm run test:libs, 启动所有库的单元测试: 也可以手动执行单个库的单元测试,例如 ng test core: 端到端测试的步骤在这里:SAP Spartacus 如何使用 cypress 进行端到端自动化测试 每一次 Spartacus 开发人员用 git
SAP Spartacus NgExpressEngineDecorator 的工作原理
首先看这个 class 的 get 定义: 接收两个输入参数,类型为: NgExpressEngineSsrOptimizationOptions 返回一个包装后的 NgExpressEngine NgExpressEngine 是 Spartacus 自己创建的类型,本质是一个函数,输入参数为 NgSetupOptions,返回类型为 NgExpressEngineInstanc
如何在 SAP Spartacus 产品明细页面添加自定义 UI
产品明细页面 Product Detail Page,简称 PDP. 首先在页面上找到 Component selector:cx-tab-paragraph-container: 对应的 Angular Component 名称:TabParagraphContainerComponent 四个 button 之后,在 active div 里,是 cx-product-details
SCSS 文件里的感叹号用法 - 给变量设置默认值
如下图所示: $useTabsOnPDP: false !default; https://stackoverflow.com/questions/10643107/what-does-default-in-a-css-property-value-mean 含义如下: !default 在 Bootstrap Sass 中经常使用。 它类似于反向 !important。 所有 B
SASS 和 SCSS 的区别
原文) Difference Between SASS and SCSSSASS(Syntactically Awesome Style Sheets)是一种由 Hampton Catlin 设计、Chris Eppstein 和 Natalie Weizenbaum 开发的样式表语言。 它是一种预处理器脚本语言,将被编译或解释为 CSS。 Sass Script 本身就是一种脚本语言。 它的
SAP UI5 应用 index.html 里各个属性赋值逻辑的讲解
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <script src="/sap/ui5/1/resources/sap-ui-core.js" id="sap-ui-bo
SAP Spartacus Accessibility E2E 端到端测试
原文 Spartacus 中的可访问性有自己的一套端到端测试,这些测试位于 projects/storefrontapp-e2e-cypress/cypress/integration/accessibility/tabbing-order.e2e-spec.ts。 其中包括需要用户登录的测试(例如,对于我的帐户页面和购物车),以及不需要用户登录的测试(例如对于主页和登录页面) )。 目
Chrome 开发者工具里的 CSS grid editor
Grid 布局与 Flex 布局有一定的相似性,都可以指定容器内部多个项目的位置。但是,它们也存在重大区别。 Flex 布局是轴线布局,只能指定”项目”针对轴线的位置,可以看作是一维布局。Grid 布局则是将容器划分成”行”和”列”,产生单元格,然后指定”项目所在”的单元格,可以看作是二维布局。Grid 布局远比 Flex 布局强大。 看个具体的例子: <!DOCTYPE html&g
如何在 SAP Commerce Cloud Portal 构建和部署 SAP Spartacus Storefront
Commerce Cloud portal: CCV2 部署包含构建和部署两个子步骤。 首先登录 cloud portal,创建一个新 build: 点击 create 按钮: 输入构建的名称和托管要构建的代码库的 git 分支。名称只是一个标签,但是,我们按照惯例使用名称是为了更容易了解构建包含的内容。约定如下: spartacus-[hybris_patch_version]
Web Bundles 学习笔记
Web BundlesChrome 开发者工具新功能 将完整的网站捆绑为单个文件并使其可共享为网络开辟了新的用例。 想象一个你可以: 创建自己的内容并以各种方式分发,不受网络限制通过蓝牙或 Wi-Fi Direct 与您的朋友分享网络应用程序或网络内容在您自己的 USB 上携带您的网站,甚至将其托管在您自己的本地网络上 Web Bundles API 是一项前沿提案,可让您完成所有这些工
Chrome 开发者工具 workspace 的概念
Edit files with Workspaces 本教程提供设置和使用工作区的实践练习,以便您可以在自己的项目中使用工作区。 工作区使您能够将在 DevTools 中所做的更改保存到存储在计算机上的源代码中。 Overview工作区使您能够将在 Devtools 中所做的更改保存到计算机上同一文件的本地副本。 例如,假设: (1) 您的桌面上有站点的源代码。(2) 您正在从源代码目录运行
Event Bus 设计模式学习笔记
原文:Design Patterns: Event Bus Motivation想象一下,有一个包含大量相互交互的组件的大型应用程序,并且您想要一种方法使您的组件进行通信,同时保持松散耦合和关注点分离原则,事件总线模式可以很好地解决您的问题。 事件总线的想法实际上与网络(总线拓扑)中研究的总线非常相似。 你有某种管道和连接到它的计算机,每当其中一个发送消息时,它就会被分派给所有其他人。 然后,
基于 OData 模型和 JSON 模型的 SAP UI5 表格控件行项目的添加和删除实现
这是 Jerry 2021 年的第 62 篇文章,也是汪子熙公众号总共第 339 篇原创文章。 龟虽寿 曹操 神龟虽寿,犹有竟时; 腾蛇乘
设计模式中的观察者模式
观察者模式是一种软件设计模式,其中一个名为主体(Subject)的对象维护其依赖项列表,称为观察者,并通常通过调用它们(observers)的方法之一来自动通知它们任何状态更改。 观察者模式主要用于在“事件驱动”软件中实现分布式事件处理系统。在这些系统中,主体 Subject 通常被称为“事件流(stream of events)”或“事件流源”,而观察者被称为“事件接收器”。 流命名法暗示了