在 Salesforce 开发中,@salesforce/wire-service
是一种用于数据绑定的 JavaScript 框架。它通过将组件与 Apex 类或 LWC 超出双向数据绑定的了解范围的数据绑定到业务数据,从而让您使用自定义组件来操作 Salesforce 数据。而 @salesforce/wire-service-jest-util
这个 npm 包则提供了一些工具帮助你在 Jest 测试时使用 @salesforce/wire-service
。
安装
通过 npm,使用以下命令来安装 @salesforce/wire-service-jest-util
:
npm install @salesforce/wire-service @salesforce/wire-service-jest-util --save-dev
使用
使用 @salesforce/wire-service-jest-util
中的 mockService
函数来模拟 @salesforce/wire-service
。它接受一个对象参数,该对象参数包括两个属性:
data
: 数据error
: 错误
data
导出的架构应该匹配用于启动您组件中的 @wire
装饰器的架构。如果您的组件使用多个 @wire
装饰器,则可以使用一个包含每个装饰器的键的数据对象。
以下是一个示例:
-- -------------------- ---- ------- ------ - ----------- - ---- ------------------------------------- ------ ----------- ---- ---------------- ------ - ------------- - ---- ------ ------ ----------- ---- --------------------------------------- ----- --------------- - ------------------------ - ----- - -- ---- ---- -- - --- -------------------------- -- -- - ------------ -- - ----- -------------------------- - ---------------------------------------------------- - -------------------- --- ---------- ------- ------- --------- -- -- - ----- ------- - ------------------------------- - --- ----------- --- ----------------------------------- ------ ------------------------- -- - ----- ------- - ------------------------------------------------------ ------------------------------- --- --- ---------- ------- ------ -- -- - ----- ------- - ------------------------------- - --- ----------- --- ----------------------------------- ---------------------- ----- - -- ---- ---- -- - --- ------ ------------------------- -- - ----- ---- - ------------------------------------------ -------------------------------- -------- ---- ---- --- --- ---展开代码
在这个示例中,我们使用 mockService
来模拟 getSomeData
的返回数据。在测试开始之前,我们使用 createElement
来实例化我们的组件。我们使用 appendChild
将元素添加到 DOM 中。对于显示加载状态和显示数据两个测试用例,我们使用 Promise.resolve().then()
来等待 DOM 更新。
在第二个测试用例中,我们在 mockService
中提供了一些 fake 的数据,并且当组件执行 @wire(getSomeData)
时,该数据将被返回。
结论
现在您已了解了如何使用 @salesforce/wire-service-jest-util
在 Jest 测试中模拟 @salesforce/wire-service
。这将帮助您构建更高质量的 Salesforce 应用程序,并且可以更轻松地检查与业务逻辑相关的组件行为。
以上就是本次文章的全部内容,希望对你有帮助!
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f2cc15d3b0ab45f74a8bba6