如何测试 Quasar(作为 Vue CLI 插件)?

Posted

技术标签:

【中文标题】如何测试 Quasar(作为 Vue CLI 插件)?【英文标题】:How to test Quasar (as Vue CLI plugin)? 【发布时间】:2020-03-17 08:01:39 【问题描述】:

我有 Vue 项目,我在这里使用Quasar Framework。最后一个我用作Vue CLI Plugin,它完美运行(code repo 和live url)。

现在我想在我的项目中添加一些单元测试(使用 jest),我遇到了一个我不明白的问题..

我尝试为NetworkWatcher 组件编写一个简单的测试。该组件使用QIcon 组件,我必须在我的测试中导入它:

import  Quasar, QIcon  from "quasar";
import NetworkWatcher from "@/components/NetworkWatcher.vue";

const localVue = createLocalVue();

localVue.use(Vuex);
localVue.use(Quasar,  components:  QIcon  );

describe("NetworkWatcher.vue", () => );

在这种情况下我有一个错误:

经过一些实验和搜索,我尝试了下一个

import * as AllQuasar from "quasar";
const  Quasar  = AllQuasar;

const components = Object.keys(AllQuasar).reduce((object, key) => 
  const val = AllQuasar[key];
  if (val && val.component && val.component.name != null) 
    object[key] = val;
  
  return object;
, );

const localVue = createLocalVue();

localVue.use(Vuex);
localVue.use(Quasar,  components );

而且它有效,我可以走这条路.. 但我不喜欢它。好像错了!那么为什么第一种方法行不通呢?

我知道 Quasar 有一个很好的“Quasar CLI”版本文档,甚至还有它自己的测试运行器。但我想使用“Vue CLI 插件”版本。

【问题讨论】:

【参考方案1】:

尝试使用下面的代码,因为它无法正确解决类星体依赖关系。

import  Quasar, QIcon  from "quasar-framework/dist/quasar.mat.esm"; //this line is modified 
import NetworkWatcher from "@/components/NetworkWatcher.vue";

const localVue = createLocalVue();

localVue.use(Vuex);
localVue.use(Quasar,  components:  QIcon  );

describe("NetworkWatcher.vue", () => );

【讨论】:

我没有quasar-framework 包。在我的node_modules 中称为quasar,但dist 内部没有quasar.mat.esm

以上是关于如何测试 Quasar(作为 Vue CLI 插件)?的主要内容,如果未能解决你的问题,请参考以下文章

在 Docker 上构建 vue/quasar 应用程序时出错

如何使用 Jest 对 quasar 应用程序进行单元测试?

Vue3 的 Quasar 单元测试

使用 vue-cli3 删除插件

如何使用 Quasar 框架访问 Vuex 存储模块操作中的 Vue 路由器?

[web开发] Vue+Spring Boot 上海大学预约系统开发记录