不使用 Vue CLI 测试纯 JavaScript Vue 组件

标签 testing visual-studio-2017 jestjs components vue-test-utils

是否可以在没有 Vue CLI/Webpack/Babel 设置的情况下测试用普通 javascript 开发的 Vue 组件?

到目前为止,我在网上找到的有关该子机的文档非常少:

我安装了 Vue、Vue 测试工具、JSDOM

我的 package.json :

{
  "name": "GuichetUnique.CMS",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "dependencies": {
    "jest": "^26.4.2",
    "vue": "^2.6.12",
    "vue-template-compiler": "^2.6.12"
  },
  "devDependencies": {
    "@vue/test-utils": "^1.0.5",
    "jsdom": "16.4.0",
    "jsdom-global": "3.0.2"
  },
  "scripts": {
    "test": "jest"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Jest 使用简单的 js 函数运行良好,但我还没有设法测试 Vue 组件。

我的测试内容

require('jsdom-global')();
var testUtils = require('@vue/test-utils'), Vue = require('vue');

testUtils.mount({ template: '<div>test</div>' });

测试结果

TypeError: Illegal invocation at removeEventListener (node_modules/jsdom/lib/jsdom/living/generated/EventTarget.js:157:15)

enter image description here

请帮忙!

最佳答案

2 个月前我们遇到过类似的问题。一个稍微不同的用例,但对我们来说,对 VueCLI 的依赖是罪魁祸首。没有它,我们甚至无法成功运行基本测试。

我认为如果你想走这条路,你可能不得不绕过预期的机制做很多工作。为此,如果值得您花时间,您需要自己回答。我们选择了 VueCLI,并认为开销是理所当然的。

关于不使用 Vue CLI 测试纯 JavaScript Vue 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63768380/

相关文章:

c++ - boost::optional 与 std::optional 对于不可复制的对象

reactjs - 我应该测试相反的情况吗?

reactjs - Jest/React/Redux 错误 : Actions may not have an undefined "type" property. 您是否拼错了常量?行动: {}

testing - 如何在 GO 中测试响应体?

C# Nancy.Hosting.Self 不响应网络请求,只响应本地主机请求

.net - Visual Studio 更新 2017 15.3.1 强制 ASP.NET Core SDK 2.0,然后找不到 "reference assemblies"

node.js - typescript 和 Jest : Avoiding type errors on mocked functions

iphone - 窃取应用程序并使用临时分发将其发布到 AppStore

javascript - 最新的 Selenium 不受支持的 "onload dialog"的解决方法?

testing - Cypress - 检查全局 afterEach 中的测试失败