node.js - Laravel VueJS 测试 TypeError: _vm._ssrEscape 不是函数
问题描述
我一直在拼凑一些不同的教程,试图让 Mocha 测试适用于 Laravel 7 Vue 组件。
我可以成功运行基本测试
expect(0).toBe(0);
但是,一旦我尝试安装一个组件,我就会收到以下错误
TypeError: _vm._ssrEscape is not a function
at Proxy.render (public/main.js:154:13)
at VueComponent.Vue._render (node_modules/vue/dist/vue.runtime.common.dev.js:3538:22)
at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:21)
at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25)
at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12)
at mountComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4061:3)
at VueComponent.Vue.$mount (node_modules/vue/dist/vue.runtime.common.dev.js:8392:10)
at init (node_modules/vue/dist/vue.runtime.common.dev.js:3112:13)
at createComponent (node_modules/vue/dist/vue.runtime.common.dev.js:5958:9)
at createElm (node_modules/vue/dist/vue.runtime.common.dev.js:5905:9)
at VueComponent.patch [as __patch__] (node_modules/vue/dist/vue.runtime.common.dev.js:6455:7)
at VueComponent.Vue._update (node_modules/vue/dist/vue.runtime.common.dev.js:3933:19)
at VueComponent.updateComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4054:10)
at Watcher.get (node_modules/vue/dist/vue.runtime.common.dev.js:4465:25)
at new Watcher (node_modules/vue/dist/vue.runtime.common.dev.js:4454:12)
at mountComponent (node_modules/vue/dist/vue.runtime.common.dev.js:4061:3)
我正在运行节点 12.18.2。
我的测试文件包含
import { mount } from '@vue/test-utils';
import Counter from '../../resources/js/components/Counter';
describe ('Counter', () => {
it ('defaults to a count of 0', () => {
const wrapper = mount(Counter);
});
});
我的组件包含
<template>
<div>
<span class="count" v-text="count"></span>
<button @click="count++"></button>
</div>
</template>
<script>
export default {
name: "Counter",
data () {
return {
count: 0
};
}
}
</script>
测试命令是
mochapack --webpack-config node_modules/laravel-mix/setup/webpack.config.js --require tests/Vue/setup.js tests/Vue/**/*.spec.js
setup.js 文件包含
require('jsdom-global')()
global.expect = require('expect');
谢谢你的帮助
解决方案
我现在有这个工作。
使用部分https://dev.to/tuandm/how-to-test-vue-components-with-laravel-mix-and-mocha-3kgc/
我没有安装 mcocha-webpack 然后卸载,而是直接安装 mochapack
npm install --save-dev webpack vue-template-compiler @vue/test-utils mocha mochapack jsdom jsdom-global expect
推荐阅读
- android - Android工作室布局设计视图未加载
- linux - 如何通过 makefile 抑制 GCC 错误或抑制特定错误
- reactjs - Webpack错误1又一个'无法读取属性'
- javascript - HTML 按钮 - 按住按钮时将重复该操作
- c++ - 在 C++ 二叉搜索树中实现旋转绝对是煎熬
- r - R Shiny 地图搜索输入框
- node.js - Expressjs 路线与 graphql-yoga
- google-sheets - 在 Google 表格的下拉列表中选择一个选项后,水平自动填充一行
- regex - 正则表达式 - 获取 2 个字符串之间的字符串
- java - 如何在不使用集合或哈希集但使用给定哈希集表的情况下获得两个集合的并集?