SAP Spartacus 单元测试开发规范

简介: SAP Spartacus 单元测试开发规范

所有代码都必须被单元测试覆盖。

每次测试测试一件事(在一个 it 里实现)。

单元测试将被测试的代码与其依赖项隔离:模拟所有的依赖项。

单元测试需要相互独立:我们应该能够以任何顺序从文件运行测试,并且不会改变结果。

在适用时涵盖快乐路径、错误、边缘情况和 UI。

UI Components

Mock Everything

与任何其他代码段一样,我们希望单独测试 UI 组件。 我们不希望测试结果受到我们正在测试的类之外的代码的影响。


虽然模拟服务之类的依赖关系更为明显,但很容易忘记模拟从测试组件的模板中调用的子组件。


要模拟子组件,您可以在规范文件中创建它的假副本。 伪造组件必须与您要伪造的子组件具有相同的选择器:


例子:


image.pngNGRX and Tests That Use the Store

事实证明,模拟 NGRX 商店是一项相当大的挑战。 NGRX 存储是我们单元测试中模拟依赖项规则的例外。


要对从 store 读取的一段代码执行单元测试,请通过使用数据显式调用相关成功操作来填充 store 以设置测试。


这是我们调度 LoadUserAddressesSuccess 来设置测试数据的示例:


image.png

Avoiding Silently Failing Tests

最好的做法是删除订阅之外的断言。 这样,我们确保在测试完成之前执行断言。 为了断言 observable 的结果,我们在订阅中分配结果,但断言是在订阅之外用值完成的。

下列做法不推荐:image.png

相关文章
|
3月前
|
JSON 开发者 数据格式
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
关于 SAP Spartacus LandingPage2Template 区域的 layout 设计实现
26 0
|
3月前
|
搜索推荐 开发者 UED
关于 SAP Spartacus 层的 UI 设计
关于 SAP Spartacus 层的 UI 设计
40 0
|
3月前
|
开发者 UED
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
SAP Spartacus BREAKPOINT 枚举类型在 Spartacus layout 实现中的作用
24 0
|
6月前
|
前端开发 搜索推荐 JavaScript
什么是 SAP Spartacus 的 CMS Page Connector
什么是 SAP Spartacus 的 CMS Page Connector
46 0
|
6月前
|
JavaScript 容器
关于 SAP Spartacus generic-link component 的模板代码
关于 SAP Spartacus generic-link component 的模板代码
42 2
|
1月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
27 0
|
1月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
15 0
|
1月前
|
Web App开发 数据采集 前端开发
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
纯技术讨论:如何让 SAP UI5 应用无法被别人在浏览器里调试 - 这种做法不推荐试读版
15 0
|
1月前
|
XML 存储 数据格式
SAP UI5 控件 customData 属性的应用介绍
SAP UI5 控件 customData 属性的应用介绍
33 0
|
1月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
28 0

热门文章

最新文章