如何模拟类星体成分



这是我要模拟的类星体组件的代码

emits: [
"buyer-protection",
...useDialogPluginComponent.emits
]

但是我得到以下错误:

TypeError: _quasar.useDialogPluginComponent.emits is not iterable

我想模拟类星体模块中的useQuasarusePluginDialogComponent。我试着用这种方式嘲笑他们:

jest.mock('quasar', () => ({
useDialogPluginComponent: () =>  ({
emits: []
}),
useQuasar: () => ({
platform: {
is: {
desktop: true
}
}
})
}))

我如何模拟这些类星体的成分?

我也试着模仿useDialogPluginComponent。但是我意识到installQuasarPlugin()会处理所有Quasar插件,所以我不需要自己模拟任何插件。

但是它必须通过挂载来创建实例,不要使用shallowMount,即确保dialogRef = vue.ref(null)将捕获q-dialog。

对于我的例子,我想检查' ondialgok '已被调用,但我不能通过spyOn跟踪' ondialgok ',所以我检查wrapper.vm发出。

expect(vueWrapper.emitted()).toHaveProperty('ok');

我不知道为什么使用edialogplugincomponent既是函数实例又是对象实例。为了解决这个问题,我定义了一个函数,并给它赋值了一个对象。

jest.mock("quasar", () => {
let t1 = () => {
return {
dialogRef: {},
onDialogHide: () => {},
onDialogOK: () => {},
onDialogCancel: () => {}
}      
};
t1.emits = ['ok', 'hide'];
return {
useQuasar: () => ({
platform: {
is: {
Mobile: true,
},
},
}),
useDialogPluginComponent: t1
}
});

相关内容

  • 没有找到相关文章

最新更新