我们如何开玩笑地模拟 bpmn-js?
Posted
技术标签:
【中文标题】我们如何开玩笑地模拟 bpmn-js?【英文标题】:How can we mock the bpmn-js in jest? 【发布时间】:2021-07-02 22:17:29 【问题描述】:我正在尝试运行一个笑话测试(它呈现一个 bpmn 图)并且我正在使用 angular 11。虽然我得到
TypeError: this.getDefaultLayer(...).getBBox is not a function
错误。所以可能我认为我们需要模拟 bpmn-js。
【问题讨论】:
【参考方案1】:您需要按照以下步骤操作(全部在测试文件中):
导入 BpmnJS
我们稍后使用这些导入来模拟 BpmnJs 对象。
import BpmnJs from 'bpmn-js/dist/bpmn-navigated-viewer.production.min'
使用 BpmnJs 方法创建一个模拟对象
在这里你可以模拟 BpmnJs 对象的任何方法。而我们使用这个对象返回对象实例。
const mockBpmn =
get: jest.fn().mockReturnValue(
zoom: jest.fn,
stepZoom: jest.fn,
add: jest.fn,
),
destroy: jest.fn,
on: jest.fn,
importXML: jest.fn,
模拟模块和 BpmnJS 对象
这里我们告诉模拟模块和对象实例化。
jest.mock('bpmn-js/dist/bpmn-navigated-viewer.production.min')
BpmnJs.mockImplementation(() => mockBpmn)
现在您可以在您的 React 组件(或被测类)中正常使用 BpmnJs。
【讨论】:
以上是关于我们如何开玩笑地模拟 bpmn-js?的主要内容,如果未能解决你的问题,请参考以下文章